Room - 模式导出目录未提供给注释处理器,因此我们无法导入模式

Room - Schema export directory is not provided to the annotation processor so we cannot import the schema

我已将 kotlin 插件更新到 1.5.20,但出现了这个问题。如果我 return 它 1.5.10 一切正常。

Schema export directory is not provided to the annotation processor so we cannot import the schema. To generate auto migrations, you must provide `room.schemaLocation` annotation processor argument AND set exportSchema to true.
public abstract class BatteryInfoDatabase extends androidx.room.RoomDatabase {

我使用的是最新版本的 Room 持久性库 alpha 3,因为它提供了自动迁移功能

def room_version = "2.4.0-alpha03"
    implementation("androidx.room:room-ktx:$room_version")
    kapt("androidx.room:room-compiler:$room_version")
        javaCompileOptions {
            annotationProcessorOptions {
                arguments += [
                        "room.schemaLocation":"$projectDir/schemas".toString()]
            }
        }

更新我的 Kotlin 版本后,我遇到了与您类似的问题(不再生成我的模式)。我可以通过从 javaCompileOptions 移动到 kapt 来修复它,如下所示:

kapt {
    arguments {
        arg("room.schemaLocation", "$projectDir/schemas".toString())
    }
}

所以用上面的块替换你的 javaCompileOptions 应该就可以了。

编辑:显然这是 Kotlin 中的错误。您可以关注此工单及其相关工单中的讨论(并查看其他解决方法):https://youtrack.jetbrains.com/issue/KT-47416