android - 未使用房间的项目中房间的运行时异常
问题描述
我突然开始在应用程序启动时遇到这个运行时异常,根本没有空间作为我的依赖项。
07-20 19:48:37.703 18737-18771/mypackage.x E/AndroidRuntime: FATAL EXCEPTION: pool-4-thread-1
Process: mypackage, PID: 18737
java.lang.IllegalStateException: A migration from 3 to 2 was required but not found. Please provide the necessary Migration path via RoomDatabase.Builder.addMigration(Migration ...) or allow for destructive migrations via one of the RoomDatabase.Builder.fallbackToDestructiveMigration* methods.
at android.arch.persistence.room.RoomOpenHelper.onUpgrade(RoomOpenHelper.java:97)
at android.arch.persistence.room.RoomOpenHelper.onDowngrade(RoomOpenHelper.java:109)
at android.arch.persistence.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.onDowngrade(FrameworkSQLiteOpenHelper.java:144)
at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:396)
at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:298)
at android.arch.persistence.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getWritableSupportDatabase(FrameworkSQLiteOpenHelper.java:96)
at android.arch.persistence.db.framework.FrameworkSQLiteOpenHelper.getWritableDatabase(FrameworkSQLiteOpenHelper.java:54)
at android.arch.persistence.room.RoomDatabase.compileStatement(RoomDatabase.java:244)
at android.arch.persistence.room.SharedSQLiteStatement.createNewStatement(SharedSQLiteStatement.java:65)
at android.arch.persistence.room.SharedSQLiteStatement.getStmt(SharedSQLiteStatement.java:72)
at android.arch.persistence.room.SharedSQLiteStatement.acquire(SharedSQLiteStatement.java:87)
at androidx.work.impl.model.WorkSpecDao_Impl.resetScheduledState(WorkSpecDao_Impl.java:337)
at androidx.work.impl.WorkManagerImpl.rescheduleEligibleWork(WorkManagerImpl.java:514)
at androidx.work.impl.utils.ForceStopRunnable.run(ForceStopRunnable.java:73)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
以下是我从 Android Arch 获得的一些依赖项:
implementation "androidx.core:core-ktx:$ktx_version"
implementation "android.arch.paging:runtime:$paging_runtime"
implementation("android.arch.lifecycle:extensions:$android_arc_version") {
force = true
}
implementation "android.arch.navigation:navigation-fragment-ktx:$navigation_version"
// use -ktx for Kotlin
implementation "android.arch.navigation:navigation-ui-ktx:$navigation_version"
implementation "android.arch.work:work-runtime-ktx:$work_version"
知道是什么原因造成的吗?
解决方案
事实证明,它android.arch.work:work
依赖于房间库,我使用的1.0.0-alpha03
是工作库的版本。我想排除依赖项,但我注意到工作组件有可用的更新,在尝试之后,它解决了问题。所以升级你的工作库来解决这个问题(此时更新的版本是1.0.0-alpha04
)
推荐阅读
- java - Java 8 将对象转换为由 VALUE 分隔的字符串
- r - 使用生成的随机数据重复一个过程,并将结果保存在 R 中的数据框中
- javascript - 如何使用 Parse Server 错误从另一个浏览器选项卡检测另一个会话正在进行中
- reactjs - 在 react native 中使用 redux 时找不到变量 addproduct 错误
- firebase - 'Future 类型的值
'不能分配给'String'类型的变量 - javascript - swiper.js | 仅当用户滚动到滑块 id 时才启动自动播放 swiper
- android - 如何使用线性布局添加背景图像作为根布局并具有嵌套线性布局
- apache - htaccess 将日志重写到多个 php 文件
- c++ - 如何在 Visual Studio 2019 中向我的项目添加库?
- vue.js - VueJS - 如何通过按钮点击显示图表以及最初如何在 vue-chartjs 中的页面加载期间显示图表1