任何处理器都无法识别以下选项:'[kapt.kotlin.generated, room.incremental]'

Dan*_*son 12 android kotlin kapt android-room

:app:kaptDebugKotlin
w: warning: The following options were not recognized by any processor: '[kapt.kotlin.generated, room.incremental]'
Run Code Online (Sandbox Code Playgroud)

为什么我得到这个?我在一个多模块项目中使用 Room。

  • 科特林版本:1.3.50
  • AGP:3.5.0
  • 房间:2.2.0-rc01

共享库模块: api "androidx.room:room-runtime:$room_version" api "androidx.room:room-ktx:$room_version" api "androidx.room:room-rxjava2:$room_version"

应用模块:

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

Gradle.properties

kapt.incremental.apt=true
Run Code Online (Sandbox Code Playgroud)

Build.gradle defaultConfig 包括这些编译选项

javaCompileOptions {
        annotationProcessorOptions {
            arguments = ["room.incremental":"true"]
        }
    }
Run Code Online (Sandbox Code Playgroud)

Kau*_*ule 7

已添加到房间的多模块项目可能会出现此类问题。对于这样的项目,问题是由于将 RoomDatabase 派生类添加到库模块,但配置了 app 模块的 build.gradle 引起的。

解决方案是配置包含 RoomDatabase 派生类的模块的 build.gradle。

  • 在依赖项{}部分的 build.gradle 文件中,添加房间编译器的依赖项。
kapt "android.arch.persistence.room:compiler:$room_version"
Run Code Online (Sandbox Code Playgroud)

请注意,对于基于 Java 的项目,请使用以下代码

annotationProcessor "android.arch.persistence.room:compiler:$room_version"
Run Code Online (Sandbox Code Playgroud)