RoomDatabase_Impl不存在

Joe*_*son 7 android android-gradle-plugin android-architecture-components

我试图实现一个房间数据库,我收到以下错误:

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)
Run Code Online (Sandbox Code Playgroud)

我尝试将相关的kotlin依赖项添加到我的gradle文件中(如下所示),但是当我这样做时,通常会生成任何问题的所有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"
}
Run Code Online (Sandbox Code Playgroud)

Mhz*_*Dev 16

它确实发生在我之前,确保你在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'
Run Code Online (Sandbox Code Playgroud)

此外,gradle synch之后的"Project Clean"也会有所帮助.

  • 要添加 kapt,您还需要在 gradle 文件开头添加 `kapt` 插件 `apply plugin: 'kotlin-kapt'` (2认同)

Ark*_*Tun 6

确保在应用程序级gradle文件中包含kotlin-kapt

apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
Run Code Online (Sandbox Code Playgroud)

并确保使用kapt而不是注解Processor。那解决了我的问题。

还要检查Room Model,DAO和数据库文件中的@ Entity,@ Dao和@Database批注。