房间 + 找不到实现 DB + DB_Impl不存在



我在运行应用程序时遇到以下错误

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"

我的数据库类:

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

在应用程序构建中.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.template.database.MoneyDatabase. MoneyDatabase_Impl does not exist.

我通过添加解决了这个问题

@Database(entities = {Coins.class},version = 1,exportSchema = false)

在数据库类之上。

这只对我有用

kapt "androidx.room:room-compiler:2.5.0-alpha03"

并且所有依赖项都将是

id 'kotlin-kapt'

// Room Database
def room_version = "2.4.3"
implementation "androidx.room:room-runtime:$room_version"
implementation "androidx.room:room-ktx:$room_version"
kapt "androidx.room:room-compiler:2.5.0-alpha03"

最新更新