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"
}
以前に起こったことですが、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」も役立ちます。
kotlin-kaptがアプリレベルのGradleファイルに含まれていることを確認してください。
apply plugin: 'kotlin-Android'
apply plugin: 'kotlin-Android-extensions'
apply plugin: 'kotlin-kapt'
annotationProcessorの代わりにkaptを使用していることを確認してください。それで問題は解決しました。
また、ルームモデル、DAO、データベースファイルで@ Entity、@ Dao、@ Databaseアノテーションを確認してください。
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
ルームコンパイラの新しいバージョンでは、両方の依存関係を追加する必要はありません。次のようにしてください-
kapt 'Android.Arch.persistence.room:compiler:2.2.3'