类型不匹配:推断类型为 AutoMigration,但预期为 KClass<*>
Type mismatch: inferred type is AutoMigration but KClass<*> was expected
我试图实现一个简单的自动迁移,它只是将一个可为空的字符串字段添加到我的 table,但由于某种原因,我在 autoMigrations = [AutoMigration(from = 1, to = 2)]
行中收到以下错误:
Type mismatch: inferred type is AutoMigration but KClass<*> was expected
我说这是一个奇怪的错误,因为即使 documentation has it this way.
完整代码如下:
@Database(
version = 2,
entities = [Note::class],
autoMigrations = [AutoMigration(from = 1, to = 2)]
)
@TypeConverters(Converters::class)
abstract class NotesDB : RoomDatabase() {
abstract fun noteDao(): NoteDao
companion object {
@Volatile
private var INSTANCE: NotesDB? = null
fun getDB(context: Context): NotesDB {
return INSTANCE ?: synchronized(this) {
val instance = Room.databaseBuilder(
context.applicationContext,
NotesDB::class.java,
"notesDB"
).build()
INSTANCE = instance
instance
}
}
}
}
将 build.gradle 中的房间版本更改为最新版本(目前为 2.4.0-alpha04)。然后如果你会得到一个关于 room.schemaLocation 的错误,看看这个答案
我试图实现一个简单的自动迁移,它只是将一个可为空的字符串字段添加到我的 table,但由于某种原因,我在 autoMigrations = [AutoMigration(from = 1, to = 2)]
行中收到以下错误:
Type mismatch: inferred type is AutoMigration but KClass<*> was expected
我说这是一个奇怪的错误,因为即使 documentation has it this way.
完整代码如下:
@Database(
version = 2,
entities = [Note::class],
autoMigrations = [AutoMigration(from = 1, to = 2)]
)
@TypeConverters(Converters::class)
abstract class NotesDB : RoomDatabase() {
abstract fun noteDao(): NoteDao
companion object {
@Volatile
private var INSTANCE: NotesDB? = null
fun getDB(context: Context): NotesDB {
return INSTANCE ?: synchronized(this) {
val instance = Room.databaseBuilder(
context.applicationContext,
NotesDB::class.java,
"notesDB"
).build()
INSTANCE = instance
instance
}
}
}
}
将 build.gradle 中的房间版本更改为最新版本(目前为 2.4.0-alpha04)。然后如果你会得到一个关于 room.schemaLocation 的错误,看看这个答案