1

我正在使用 Room 版本 2.2.6.、Android Studio 4.2.2 并用 Java 编写。

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

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

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

任何线索我可以搜索什么方向?我在这里找到的所有与 createFromAsset 相关的帖子都只包含文档中相同的复制段落。

4

1 回答 1

0

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

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

于 2021-07-24T13:59:09.223 回答