Android Studio Database Inspector不显示Room数据库问题求助
核心原因
调用Room.databaseBuilder.build()仅会生成Room数据库的Java层实例,不会立刻在设备磁盘上创建实际的数据库文件,只有执行第一次读写操作时,Room才会触发数据库文件的生成逻辑,未实际生成的数据库文件无法被Database Inspector检测到。你对照的codelab项目能正常显示,是因为其默认在Database的Callback中添加了首次启动插入预置数据的逻辑,启动就触发了数据库文件创建。
解决方案
- 临时添加触发操作
在你当前的代码基础上,仅需要在获取DAO实例后加一次简单的数据库读写操作,即可触发数据库文件生成,示例代码可直接加在AppRepository构造方法末尾:
// 用自带的线程池执行一次读操作,触发数据库实际创建 AllTimersDatabase.databaseWriteExecutor.execute(() -> { // 调用任意已实现的DAO方法均可,这里直接用现有方法即可 int latestId = timerDesignDAO.getMostRecentInsertedTimerID(); Log.d(ViewModelTimerSetup.getStaticLogTag(), "数据库已创建,查询到最新主键ID:" + latestId); });
添加后重新运行应用,再打开Database Inspector就能看到timers_database数据库和对应的表结构。
- 其他排查项
- 确认Database Inspector面板顶部的进程选择下拉框,选中的是你当前运行的应用进程,避免误选其他应用进程导致看不到数据库
- 确认使用的Android Studio版本为4.1及以上,测试用的模拟器/真机系统版本为API 26及以上,低于该版本不支持Database Inspector功能
内容的提问来源于stack exchange,提问作者tommytucker7182
相关产品推荐
相关产品推荐

