android - 房间没有在 UI 测试中创建数据库
问题描述
我在我的项目中使用了一个 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}"
或者是否有必要使用适用于 Android 9 设备的 AndroidX 库?
任何帮助表示赞赏!
解决方案
事实证明,迁移后数据库缺少 close()。在生产应用程序中,一切都很好,但在模拟器上的测试 + 中出现了所描述的错误。也许它对其他人有帮助!
推荐阅读
- java - 如何使用jsp从表中检索数据?
- python - 图成一个子图matplotlib
- android - 有没有办法从 youtubeintents 检索订阅频道的数据?
- php - 调试MySql Gone away错误,随机获取多个休眠线程
- ssis - SSIS 导入 CSV 用引号分隔
- python - 程序员说“引发错误”是什么意思(例如,为什么要这样做)?
- android - 使用 AndroidX 运行检测测试时未找到测试
- c - 具有 2 个客户端的 UDP 服务器,如何为它们分配特定端口
- deployment - NixOS 中的 NixOS?
- javascript - ajax 动态文件查看器