Room DB Error: AppDatabase_Impl does not exist

 Kotlin 测试 Android Room 的使用,在 coroutine 中调用 Room.databaseBuilder 时,报错:

AppDatabase_Impl does not exist

查看了developer 文档,就是按照文档配置的,深思后发现developer文档有问题

dependencies {
    val room_version = "2.4.3"

    implementation("androidx.room:room-runtime:$room_version")
    annotationProcessor("androidx.room:room-compiler:$room_version")

    // To use Kotlin annotation processing tool (kapt)
    kapt("androidx.room:room-compiler:$room_version")
    // To use Kotlin Symbol Processing (KSP)
    ksp("androidx.room:room-compiler:$room_version")

    // optional - Kotlin Extensions and Coroutines support for Room
    implementation("androidx.room:room-ktx:$room_version")

    // optional - RxJava2 support for Room
    implementation("androidx.room:room-rxjava2:$room_version")

    // optional - RxJava3 support for Room
    implementation("androidx.room:room-rxjava3:$room_version")

    // optional - Guava support for Room, including Optional and ListenableFuture
    implementation("androidx.room:room-guava:$room_version")

    // optional - Test helpers
    testImplementation("androidx.room:room-testing:$room_version")

    // optional - Paging 3 Integration
    implementation("androidx.room:room-paging:2.5.0-alpha03")
}

以上的developer文档给出的,但是在添加依赖的时候有一个依赖是:

 kapt("androidx.room:room-compiler:$room_version")

所以问题就出在这里,有kapt的依赖,但是没有kapt的plugin 

最后的解决方案:

修改 app gradle.build 的配置,增加 plugin kotlin-kapt,如下:

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
    id 'kotlin-kapt'
}

然后确认 room 相关的这三个依赖dependencies:

  implementation("androidx.room:room-runtime:2.4.3")
    annotationProcessor("androidx.room:room-compiler:2.4.3")
    kapt("androidx.room:room-compiler:2.4.3")

猜你喜欢

转载自blog.csdn.net/Jason_HD/article/details/127088896