解决:cannot find implementation for XXX. XXX_Impl does not exist

第一次使用Jetpack上Room架构

第一次使用Jetpack上Room架构,遇到一个问题Caused by: java.lang.RuntimeException: cannot find implementation for com.aheading.request.database.AppDatabase. AppDatabase_Impl does not exist ,就是如下这个错误:




然后百度了很多方法,才找到了解决方案。
为了下次再次遇到问题,以及快速帮助大家找到问题,在此记录一下。

第一步:检查注解是否添加

确保注解是否都已经添加,并且确保注解内容是否正确.

  • @Database:表示数据库.
  • @Entity:表示数据库中的表。
  • @DAO:包含用于访问数据库的方法。
    如果注解添加错误也会有以上错误。


第二步:检查依赖是否添加

    //Android官网依赖是这样的,java开发人员使用
    compile "android.arch.persistence.room:runtime:$room_version"
    annotationProcessor 'android.arch.persistence.room:compiler:$room_version'

    //对于那些使用Kotlin的人,请尝试在应用中更改annotationProcessor为kapt
    compile "android.arch.persistence.room:runtime:$room_version"
    kapt "android.arch.persistence.room:compiler:$room_version"

    //如果您已迁移到androidx
    implementation "androidx.room:room-runtime:$room_version"
    implementation "androidx.room:room-ktx:$room_version"
    kapt "androidx.room:room-compiler:$room_version"

如果使用了kotlin项目,不要忘记在顶部引用kotlin-kapt插件

apply plugin: 'kotlin-kapt'


第三步:是否是多模块x项目

如果项目包含多个模块,在使用RoomDataBase的那个模块中,同样需要添加kapt依赖。

apply plugin: 'kotlin-kapt'


dependencies {
          kapt  "androidx.room:room-compiler:$room_version"
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。