重新安装后 Room 数据库抛出错误 - Room 无法验证数据完整性
Room database throwing error after reinstalling - Room cannot verify the data integrity
我正处于项目开发阶段。所以,我现在基本上不需要迁移。我之前有 FirstTable,SecondTable 是新添加的。我也已经预先打包了数据库。下面是使用的代码。
@Database(
entities = [
FirstTable::class,
SecondTable::class
],
version = 1,
exportSchema = true
)
abstract class MyDatabase : RoomDatabase() {
companion object {
private const val databaseName = "my-db"
private const val prepackagedDB = "prepackaged-db"
fun buildDatabase(context: Context): MyDatabase {
return Room.databaseBuilder(context, MyDatabase::class.java, databaseName)
.createFromAsset(prepackagedDB)
.build()
}
}
}
我也在AndroidManifest.xml中给出了android:allowBackup="false"
。我不想使用 fallbackToDestructiveMigration()
来清除我预先打包的数据库。
我卸载了模拟器中的应用程序(API 29 级)和运行 应用程序。我收到此错误。
我无法理解为什么重新安装会导致此问题。有人可以让我知道我做错了什么吗?
在预先打包的数据库中包含了新的 table(一个空的),然后它工作正常。
我正处于项目开发阶段。所以,我现在基本上不需要迁移。我之前有 FirstTable,SecondTable 是新添加的。我也已经预先打包了数据库。下面是使用的代码。
@Database(
entities = [
FirstTable::class,
SecondTable::class
],
version = 1,
exportSchema = true
)
abstract class MyDatabase : RoomDatabase() {
companion object {
private const val databaseName = "my-db"
private const val prepackagedDB = "prepackaged-db"
fun buildDatabase(context: Context): MyDatabase {
return Room.databaseBuilder(context, MyDatabase::class.java, databaseName)
.createFromAsset(prepackagedDB)
.build()
}
}
}
我也在AndroidManifest.xml中给出了android:allowBackup="false"
。我不想使用 fallbackToDestructiveMigration()
来清除我预先打包的数据库。
我卸载了模拟器中的应用程序(API 29 级)和运行 应用程序。我收到此错误。
我无法理解为什么重新安装会导致此问题。有人可以让我知道我做错了什么吗?
在预先打包的数据库中包含了新的 table(一个空的),然后它工作正常。