18

我正在尝试在 Android Studio 中使用 Database Inspector。为什么我在设备上运行应用程序,它检查器总是将我的应用程序数据库(在图像中突出显示)显示为“关闭”。

是否有任何解决方法或者我在设置过程中遗漏了什么?

在此处输入图像描述

4

10 回答 10

12

UPD。上次我有这个烦人的问题Invalidate cache/Restart为我解决了这个问题。

在调试模式下运行应用程序在此处输入图像描述(Win:Shift+F9 或 Mac:Control+D)有时对我来说很神奇。

不确定这是否是错误。android文档没有提到这一点,所以我想它应该只在正常模式下工作,但由于某种原因不适合我..

我使用(Android Studio 4.2 beta 3)。属性minSdkVersion设置为 27。

我不使用 Room 或任何其他 ORM,只是一些简单的查询。

切换“保持数据库连接打开”似乎也没有帮助。

在正常模式下:

在此处输入图像描述

在调试模式下(我想要的):

在此处输入图像描述

值得注意的是,即使在我停止在调试模式下运行的应用程序之后,它仍然可以继续工作(查询数据库等):

在此处输入图像描述

于 2021-01-24T10:06:57.027 回答
7

我遇到了同样的问题,我尝试了很多东西但没有奏效,最后一天我才知道这个问题。问题是我使用的是加密的 SQLite 数据库(自定义openHelperFactory)。

对我来说,这是删除openHelperFactory后的问题

它工作得很好,我的回答可能对你没有用,但肯定对某人有用。

谢谢

于 2021-01-08T13:54:27.117 回答
4

对我来说,“关闭”的原因很可能是我使用的框架(Exposed/SQLDroid)在数据库连接不工作时会关闭它。

因此,即使在应用程序中一切正常时,数据库在 Database Inspector 想要查看它时也已关闭。

添加下面的行基本上解决了这个问题。我不会把它放到生产代码中,因为我没有详细检查发生了什么,但它在开发过程中有所帮助。

val db = openOrCreateDatabase("testdb.db", MODE_PRIVATE, null)
// db.close() -- DO NOT USE THIS

重要的是不要使用db.close()。什么db.close()时候,Database Inspector 将 db 显示为已关闭。当它不存在时,Database Inspector 通常可以工作。

于 2021-07-15T11:57:41.650 回答
2

就我而言,我使用的是 SQLite 数据库。我刚刚评论了这一行:

//yourDatabaseName.close();

然后再次运行,希望它有效。

完成后不要忘记取消注释该行。

于 2021-03-16T13:30:22.123 回答
1

不确定这是否会有所帮助,但您有可能为数据库检查器选择了错误的模拟器/设备。 在此处输入图像描述

您可以通过单击仿真器的名称来更改数据库检查器的仿真器,如镜像所显示。

于 2021-02-18T02:06:56.517 回答
0

直到我运行带有调试器实例的应用程序,然后在应用程序加载到模拟器后立即终止应用程序,发布的解决方案都对我有用。

之后,导航到 Database Inspector 视图会显示必要的数据: 在此处输入图像描述

于 2021-11-26T16:13:54.560 回答
0

我没有很好的答案,但这里有一些其他可能的方法:

从您的屏幕截图中,我看到您已经这样做了,但是对于其他人...听起来就是您应该能够完成这项工作的方式-

此外,您可以通过在“数据库”窗格顶部将保持数据库连接从关闭 () 切换到打开 () 来防止关闭数据库连接。

...但这对我不起作用,所以我最终去了设备文件资源管理器,将我感兴趣的数据库保存到我的桌面,并在那里使用它。

这个工具我也很幸运: https ://github.com/amitshekhariitbhu/Android-Debug-Database

于 2020-12-14T15:18:59.437 回答
0

实际上调试模式对我不起作用。

它最初有效。突然,在一些成功的构建之后,这个问题又来了。所以我要做的是停止检查并打开您实际查询数据库的页面,然后从应用程序检查中附加,它显示数据库一直打开。

于 2021-09-02T10:48:22.980 回答
0

更新 Room 版本(当前2.2.6)对我有用,但在发行说明中没有提到任何这样的错误。我怀疑它可能与缓存有关,所以也许这也值得尝试

于 2021-03-11T19:28:17.483 回答
-1

启用“保持数据库连接打开”。见下图

数据库视图

于 2021-04-15T12:01:27.710 回答