使用 Kotlin 信号处理 (KSP) 时提供注释处理器参数

Cri*_*tan 22 android kotlin android-room kotlin-symbol-processing

我使用以下方法将 KSP 与 Room 结合使用:

plugins {
    id 'com.google.devtools.ksp' version "$kotlin_version-1.0.0"
Run Code Online (Sandbox Code Playgroud)
dependencies {
   ksp "androidx.room:room-compiler:$room_version"
Run Code Online (Sandbox Code Playgroud)

这确实有效。但是,当我尝试运行它时,我会收到此警告

[ksp] MyDatabase.kt:11:架构导出目录未提供给注释处理器,因此我们无法导出架构。您可以提供room.schemaLocation注释处理器参数或将 exportSchema 设置为 false。

为了做到这一点:使用 KSP 时如何提供注释处理器参数?

Cri*_*tan 66

将以下内容添加到您的 build.gradle 中:

defaultConfig {
    // ...
    ksp {
        arg("room.schemaLocation", "$projectDir/schemas")
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 这完全解决了问题,非常感谢。只需注意,这应该添加到模块的“build.gradle”文件中的“android.defaultConfig”内。 (10认同)