web-dev-qa-db-ja.com

次のオプションはどのプロセッサでも認識されませんでした: '[kapt.kotlin.generated、room.incremental]'

:app:kaptDebugKotlin
w: warning: The following options were not recognized by any processor: '[kapt.kotlin.generated, room.incremental]'

なぜこれを取得するのですか? Roomをマルチモジュールプロジェクトで使用しています。

  • Kotlinバージョン: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

Build.gradle defaultConfigには これらのコンパイルオプション が含まれます:

javaCompileOptions {
        annotationProcessorOptions {
            arguments = ["room.incremental":"true"]
        }
    }
6
Daniel Wilson

モジュールにkaptがないことがIDEの元々の問題であったことに同意します。

  • 「androidx.room:room-compiler:${roomVersion}」

CLIには他にも1つあり、詳細な警告で確認できます。

現在のJDKバージョン1.8.0_191-8u191-b12-2ubuntu0.18.04.1-b12には、Roomを妨げるバグ( https://bugs.openjdk.Java.net/browse/JDK-800772 )があります。インクリメンタルから。 Android Studio 3.5 + .warningに同梱されているJDK 11+または組み込みJDKの使用を検討してください:次のオプションはどのプロセッサーでも認識されませんでした: '[kapt.kotlin.generated、room.incremental]' [警告]インクリメンタルアノテーション処理が要求されましたが、次のプロセッサはインクリメンタルではないため、サポートは無効になっています:androidx.room.RoomProcessor(DYNAMIC)。

1
Michal Reiter

以前にこの問題がありました。何をしましたか?

まず、defaultConfigというオブジェクトのbuild.gradleファイルで、削除する必要があります。

javaCompileOptions {
    annotationProcessorOptions {
        arguments = ["room.incremental":"true"]
    }
}

交換する必要があります:

implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
def room_version = "2.2.5"
implementation "androidx.room:room-runtime:$room_version"
kapt "androidx.room:room-compiler:$room_version"

と:

// Room components
def room_version = "2.2.5"
implementation "Android.Arch.persistence.room:runtime:$room_version"
kapt "Android.Arch.persistence.room:compiler:$room_version"
kaptAndroidTest "Android.Arch.persistence.room:testing:$room_version"

// Lifecycle components
def archLifecycleVersion = "2.2.5"
implementation "Android.Arch.lifecycle:extensions:$archLifecycleVersion"
kapt "Android.Arch.lifecycle:compiler:$archLifecycleVersion"

次に、gradle.propertiesに追加します。

kapt.incremental.apt=true
kapt.use.worker.api=true
Android.lifecycleProcessor.incremental=true

この設定については 他のスタックオーバーフローページの関連問題 を参照してください。