web-dev-qa-db-ja.com

RoomDatabase_Implは存在しません

Roomデータベースを実装しようとすると、次のエラーが発生します。

Java.lang.RuntimeException: cannot find implementation for com.udacity.gradle.builditbigger.Database.HilarityUserDatabase. HilarityUserDatabase_Impl does not exist
                                                 at Android.Arch.persistence.room.Room.getGeneratedImplementation(Room.Java:92)

Gradleファイルに関連するKotlin依存関係を追加しようとしましたが(以下を参照)、追加すると、通常は問題が発生して生成されるすべてのDatabindingクラスがGradleコンソールでエラーを生成します。 DataBindingライブラリとRoom Pesistence Libraryを使用する方法はありますか?

apply plugin: 'kotlin-Android'
apply plugin: 'kotlin-Android-extensions'
apply plugin: 'kotlin-kapt'
...
dependencies{
    kapt "Android.Arch.persistence.room:compiler:1.0.0"
}
10

以前に起こったことですが、build.gradleに3つの依存関係がすべてあることを確認してください

implementation 'Android.Arch.persistence.room:runtime:1.0.0'
annotationProcessor  'Android.Arch.persistence.room:compiler:1.0.0'
kapt 'Android.Arch.persistence.room:compiler:1.0.0'

また、gradle synch後の「Project Clean」も役立ちます。

19
MhzDev

kotlin-kaptがアプリレベルのGradleファイルに含まれていることを確認してください。

apply plugin: 'kotlin-Android'
apply plugin: 'kotlin-Android-extensions'
apply plugin: 'kotlin-kapt'

annotationProcessorの代わりにkaptを使用していることを確認してください。それで問題は解決しました。

また、ルームモデル、DAO、データベースファイルで@ Entity、@ Dao、@ Databaseアノテーションを確認してください。

8
Arkar Min Tun

Room、LiveData、ViewModelを使用するには、次のライブラリが必要です。

•implementation "Android.Arch.persistence.room:runtime:1.0.0" •implementation "Android.Arch.lifecycle:extensions:1.1.0" •kapt "Android.Arch.persistence.room:compiler:1.0.0" •kapt "Android.Arch.lifecycle:compiler:1.1.0"

LiveDataとViewModelを使用すると、DataBinding手法を使用できます。

詳細については、公式ページを確認してください: https://developer.Android.com/topic/libraries/architecture/adding-components.html

1
Erick

ルームコンパイラの新しいバージョンでは、両方の依存関係を追加する必要はありません。次のようにしてください-

kapt 'Android.Arch.persistence.room:compiler:2.2.3'
0
Anoop M