web-dev-qa-db-ja.com

ルーム+実装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を使用しようとしますか?誰かがこの解決策を見つけるのを助けることができますか?

12
user9824289

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"
28
EpicPandaForce