java.lang.IllegalStateException:Room 无法验证数据完整性。您似乎已更改架构但忘记更新版本号。您可以通过增加版本号来简单地解决此问题。
fun providesLocalDatabase(@ApplicationContext context: Context): TaskDatabase {
return Room.databaseBuilder(context, TaskDatabase::class.java, "task_db")
.fallbackToDestructiveMigration()
.build()
这解决了问题。它确保数据库仅创建一次。
companion object {
@Volatile
private var Instance: TaskDatabase? = null
fun getDatabase(context: Context): TaskDatabase {
// if the Instance is not null, return it, otherwise create a new database instance.
return Instance ?: synchronized(this) {
Room.databaseBuilder(context, TaskDatabase::class.java, "item_database")
.fallbackToDestructiveMigration()
.build()
.also { Instance = it }
}
}
}