房间未在UI测试中创建数据库

时间:2019-01-14 16:25:37

标签: android android-espresso android-room android-9.0-pie

我正在项目中使用一个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中可见。有人面临同样的问题吗?目前,我们正在为Room使用预装的AndroidX库:

implementation "android.arch.persistence.room:runtime:${androidArchVersion}"
kapt "android.arch.persistence.room:compiler:${androidArchVersion}"

还是需要将AndroidX库用于带有Android 9的设备?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

事实证明,迁移后数据库缺少close()。在生产应用程序中,一切都很好,但是在模拟器上的Tests +中出现了所描述的错误。也许对其他人有帮助!

相关问题