第一次使用Jetpack上Room架构
第一次使用Jetpack上Room架构,遇到一个问题Caused by: java.lang.RuntimeException: cannot find implementation for com.aheading.request.database.AppDatabase. AppDatabase_Impl does not exist ,就是如下这个错误:
然后百度了很多方法,才找到了解决方案。
为了下次再次遇到问题,以及快速帮助大家找到问题,在此记录一下。
第一步:检查注解是否添加
确保注解是否都已经添加,并且确保注解内容是否正确.
第二步:检查依赖是否添加
//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"
}