我从Room
IllegalStateException
中收到一条错误消息,原因是我将db值从non nullable更改为nullable时发现“ Room无法验证数据完整性”,但是我的数据库设置如下:
@JvmStatic
@Provides
@ApplicationScope
fun provideRoomDatabase(context: Application): MyDb = Room.databaseBuilder(
context,
MyDb::class.java, DB_NAME
).fallbackToDestructiveMigration().build()
这可能是个问题吗?
答案 0 :(得分:1)
进行更改后,您是否增加了数据库版本?由于它确实会重新创建数据库,但有时仍会使用旧模式,因此,通过增加版本,您可以修复异常。您也可以在此处Room Migration
的文档中进行检查更新数据库的架构后,某些设备上数据库仍可能使用较旧的架构版本。如果Room无法找到将设备数据库从旧版本升级到当前版本的迁移规则,则会发生IllegalStateException。