web-dev-qa-db-fra.com

Les options suivantes n'ont été reconnues par aucun processeur: '[kapt.kotlin.generated, room.incremental]'

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

Pourquoi est-ce que je reçois ça? J'utilise Room dans un projet multi-modules.

  • Version Kotlin: 1.3.50
  • AGP: 3.5.0
  • Salle: 2.2.0-rc01

Module de bibliothèques partagées: api "androidx.room:room-runtime:$room_version" api "androidx.room:room-ktx:$room_version" api "androidx.room:room-rxjava2:$room_version"

Module d'application:

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

Gradle.properties

kapt.incremental.apt=true

Build.gradle defaultConfig inclut ces options de compilation :

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

Bien que je convienne que le manque de kapt dans le module était le problème d'origine dans l'IDE.

  • "androidx.room:room-compiler:${roomVersion}"

Il peut y en avoir un autre dans CLI, que vous pouvez voir avec des avertissements détaillés:

La version actuelle du JDK 1.8.0_191-8u191-b12-2ubuntu0.18.04.1-b12 comporte un bogue ( https://bugs.openjdk.Java.net/browse/JDK-800772 ) qui empêche Room d'être incrémentielle. Pensez à utiliser JDK 11+ ou le JDK intégré livré avec Android Studio 3.5 + .warning: les options suivantes n'ont été reconnues par aucun processeur: '[kapt.kotlin.generated, room.incremental]') [AVERTISSEMENT] Traitement d'annotation incrémentiel demandé, mais la prise en charge est désactivée car les processeurs suivants ne sont pas incrémentiels: androidx.room.RoomProcessor (DYNAMIC).

1
Michal Reiter

J'ai eu ce problème auparavant: qu'est-ce que j'ai fait?

Tout d'abord, dans le fichier build.gradle dans l'objet appelé defaultConfig, je dois supprimer:

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

Je dois remplacer:

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"

Avec:

// 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"

Deuxièmement, dans gradle.properties j'ajoute:

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

Voir problème connexe dans une autre page de débordement de pile à propos de cette configuration.