房间 + 找不到实现 DB + DB_Impl 不存在
Room + cannot find implementation DB + DB_Impl does not exist
我在 运行 应用程序
时遇到以下错误
java.lang.RuntimeException: cannot find implementation for com.abc.db.abdDB. abcDB_Impl does not exist
我的 build.gradle 具有以下配置:
implementation "androidx.lifecycle:lifecycle-extensions:2.0.0-alpha1"
annotationProcessor "androidx.lifecycle:lifecycle-compiler:2.0.0-alpha1"
implementation "androidx.room:room-runtime:2.0.0-alpha1"
annotationProcessor "androidx.room:room-compiler:2.0.0-alpha1"
我的数据库class:
fun getDatabase(context: Context): abcDB? {
if (dbInstance == null) {
synchronized(abcDB::class.java) {
if (dbInstance == null) {
dbInstance = Room.databaseBuilder(context.applicationContext,
abcDB::class.java, "abc_db")
.fallbackToDestructiveMigration()
.addCallback(sRoomDatabaseCallback)
.build()
}
}
}
return dbInstance
}
有人尝试使用 androidX API 吗?有人可以帮助找到解决方案吗?
如果你使用 Kotlin,那么你必须使用 kapt
而不是 annotationProcessor
,并且还必须应用 kotlin-kapt
插件。
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
dependencies {
implementation "androidx.lifecycle:lifecycle-extensions:2.0.0-alpha1"
kapt "androidx.lifecycle:lifecycle-compiler:2.0.0-alpha1"
implementation "androidx.room:room-runtime:2.0.0-alpha1"
kapt "androidx.room:room-compiler:2.0.0-alpha1"
对于Java
在应用程序中 build.gradle
使用
implementation 'android.arch.persistence.room:runtime:1.1.1'
annotationProcessor 'android.arch.persistence.room:compiler:1.1.1'
我在 运行 应用程序
时遇到以下错误java.lang.RuntimeException: cannot find implementation for com.abc.db.abdDB. abcDB_Impl does not exist
我的 build.gradle 具有以下配置:
implementation "androidx.lifecycle:lifecycle-extensions:2.0.0-alpha1"
annotationProcessor "androidx.lifecycle:lifecycle-compiler:2.0.0-alpha1"
implementation "androidx.room:room-runtime:2.0.0-alpha1"
annotationProcessor "androidx.room:room-compiler:2.0.0-alpha1"
我的数据库class:
fun getDatabase(context: Context): abcDB? {
if (dbInstance == null) {
synchronized(abcDB::class.java) {
if (dbInstance == null) {
dbInstance = Room.databaseBuilder(context.applicationContext,
abcDB::class.java, "abc_db")
.fallbackToDestructiveMigration()
.addCallback(sRoomDatabaseCallback)
.build()
}
}
}
return dbInstance
}
有人尝试使用 androidX API 吗?有人可以帮助找到解决方案吗?
如果你使用 Kotlin,那么你必须使用 kapt
而不是 annotationProcessor
,并且还必须应用 kotlin-kapt
插件。
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
dependencies {
implementation "androidx.lifecycle:lifecycle-extensions:2.0.0-alpha1"
kapt "androidx.lifecycle:lifecycle-compiler:2.0.0-alpha1"
implementation "androidx.room:room-runtime:2.0.0-alpha1"
kapt "androidx.room:room-compiler:2.0.0-alpha1"
对于Java
在应用程序中 build.gradle
使用
implementation 'android.arch.persistence.room:runtime:1.1.1'
annotationProcessor 'android.arch.persistence.room:compiler:1.1.1'