预填充 Android 房间数据库保持为空

Prepopulated Android Room database stays empty

我正在使用 Room 版本 2.2.6.,Android Studio 4.2.2 并在 Java.

中编写

我在模拟器中手动与应用程序交互填充了我的应用程序的数据库,它显示在应用程序和数据库检查器中,正如人们所期望的那样。我构建了一个特定的初始示例状态,我希望我的用户在第一次启动时拥有该状态。然后,我直接从设备文件资源管理器下载了 .db .db-shm .db-wal 文件,并将它们保存在 src/main/assets/databases/ 中。

在我的数据库初始化代码中,我在 .databaseBuilder.build 调用之间添加了行 .createFromAsset("databases/Example.db"),以从这些文件预填充我的数据库。

然而在擦除我的本地数据并重新安装应用程序后,数据库仍然是空的。

知道我可以搜索的方向吗?我在此处找到的所有与 createFromAsset 相关的帖子仅包含文档中相同的复制段落。

createFromAsset() 假设只需要 .db 文件。

所以,复制前先关闭数据库。如果你有 .db-shm.db-wal 个文件,你没有先关闭数据库。