我在我的项目中使用一个Room数据库,它在生产中工作,包括UI测试(使用Espresso),直到Android 8。在Android 9上,我的UI测试失败了,因为数据库没有创建。我在logcat中得到以下错误消息
android.database.sqlite.SQLiteException: no such table: table (code 1 SQLITE_ERROR): , while compiling: SELECT * FROM table WHERE type = ?这种情况只发生在Android 9设备上。在使用Stetho进行调试时,我也找不到db文件。在Android 9之前的设备上,该文件可以在Stetho中看到。有谁面临同样的问题吗?目前,我们正在使用预AndroidX库的房间:
implementation "android.arch.persistence.room:runtime:${androidArchVersion}"
kapt "android.arch.persistence.room:compiler:${androidArchVersion}"还是有必要使用安卓9设备的AndroidX库呢?
任何帮助都是非常感谢的!
发布于 2019-01-24 08:21:53
结果发现,在迁移之后,数据库中缺少一个close()。在生产应用程序中,一切都很好,但是在测试+仿真程序中,出现了所描述的错误。也许这对别人有帮助!
https://stackoverflow.com/questions/54185402
复制相似问题