第一次使用Jetpack上Room架構(gòu)
第一次使用Jetpack上Room架構(gòu)还蹲,遇到一個(gè)問題Caused by: java.lang.RuntimeException: cannot find implementation for com.aheading.request.database.AppDatabase. AppDatabase_Impl does not exist 迷郑,就是如下這個(gè)錯(cuò)誤:
然后百度了很多方法,才找到了解決方案章喉。
為了下次再次遇到問題,以及快速幫助大家找到問題街图,在此記錄一下闻丑。
第一步:檢查注解是否添加
確保注解是否都已經(jīng)添加,并且確保注解內(nèi)容是否正確.
-
@Database
:表示數(shù)據(jù)庫(kù). -
@Entity
:表示數(shù)據(jù)庫(kù)中的表众羡。 -
@DAO
:包含用于訪問數(shù)據(jù)庫(kù)的方法侨赡。
如果注解添加錯(cuò)誤也會(huì)有以上錯(cuò)誤。
第二步:檢查依賴是否添加
//Android官網(wǎng)依賴是這樣的,java開發(fā)人員使用
compile "android.arch.persistence.room:runtime:$room_version"
annotationProcessor 'android.arch.persistence.room:compiler:$room_version'
//對(duì)于那些使用Kotlin的人羊壹,請(qǐng)嘗試在應(yīng)用中更改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項(xiàng)目蓖宦,不要忘記在頂部引用kotlin-kapt插件
apply plugin: 'kotlin-kapt'
第三步:是否是多模塊x項(xiàng)目
如果項(xiàng)目包含多個(gè)模塊,在使用RoomDataBase的那個(gè)模塊中舶掖,同樣需要添加kapt依賴。
apply plugin: 'kotlin-kapt'
dependencies {
kapt "androidx.room:room-compiler:$room_version"
}