web-dev-qa-db-fra.com

Android Studio Avertissement: Utilisation de plugins incompatibles pour le traitement des annotations

Après avoir mis à jour Android Studio vers la version 2.3, je reçois un avertissement:

Avertissement: Utilisation de plugins incompatibles pour le traitement des annotations: Android-apt. Cela peut entraîner un comportement inattendu.

Des solutions? Mon application a cessé de fonctionner ...

49
K. Kempski

Les dépendances de niveau de votre application doivent inclure (conformément aux instructions du site Web de butterknife):

compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

Vous pouvez supprimer la ligne: 

apply plugin: 'com.neenbedankt.Android-apt'

Le traitement des annotations étant disponible dans le plugin Android Gradle (2.2 et ultérieur), il n’est désormais plus nécessaire d’utiliser le plugin ci-dessus si vous utilisez cette version de gradle ou une version ultérieure.

Si vous souhaitez savoir comment activer et désactiver le traitement des annotations et que le paramètre est défini dans: 

Paramètres> Construction, exécution, déploiement> Compilateur> Processeurs d'annotation

124
Mark Keen

Dans mon projet, j'utilise notamment Butter Knife et Immutables. Après avoir ajouté Immutables, j'ai reçu l'avertissement suivant

Avertissement: Utilisation de plugins incompatibles pour le traitement des annotations: Android-apt. Cela peut entraîner un comportement inattendu.

et ButterKnife a cessé de travailler.

Ma configuration était la suivante:

build.gradle (Projet: MonApplication)

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:2.3.1'
        classpath 'com.neenbedankt.gradle.plugins:Android-apt:1.8'
    }
}

build.gradle (module: app)

apply plugin: 'com.Android.application'
apply plugin: 'Android-apt'

...

dependencies {

    ...

    // Butter Knife
    compile 'com.jakewharton:butterknife:8.5.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'

    // Immutables
    apt 'org.immutables:value:2.4.4'
    provided 'org.immutables:value:2.4.4'
    provided 'org.immutables:builder:2.4.4'
    provided 'org.immutables:gson:2.4.4'

}

Après avoir changé

annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'

à 

apt 'com.jakewharton:butterknife-compiler:8.5.1'

avertissement disparu et tout fonctionne comme il se doit.

METTRE À JOUR

Comme Mark l'a dit, un processeur d'annotation était inclus dans la version 2.2 de Gradle, il n'y a donc aucune raison d'en fournir un supplémentaire.

Alors:

1) Supprimez le chemin de classe pour l'apt de build.gradle (Project: MyApplication)

classpath 'com.neenbedankt.gradle.plugins:Android-apt:1.8'

2) Retirez le plug-in du build.gradle (Module: app)

apply plugin: 'Android-apt'

3) Changer les dépendances d'apt au nouveau annotationProcessor

annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
annotationProcessor 'org.immutables:value:2.4.4'
39
Milan Hlinák

Pour ajouter à la réponse de @ Milan, si vous avez utilisé la bibliothèque hotchemi permissiondispatcher dans votre fichier de gradation de niveau d'application, vous devez le remplacer comme suit:

Remplacer

apt 'com.github.hotchemi:permissionsdispatcher-processor:2.4.0'

avec

annotationProcessor 'com.github.hotchemi:permissionsdispatcher-processor:2.4.0'
2
Akinola Olayinka

Dans le bloc Project Gradle buildscript --> dependencies, supprimez la deuxième ligne classpath:

dependencies {
    classpath 'com.Android.tools.build:gradle:3.2.1'
    // classpath 'com.neenbedankt.gradle.plugins:Android-apt:1.8'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

Et au bloc app Gradle dependencies, modifiez ces lignes, utilisez api et annotationProcessor:

api 'com.google.dagger:dagger:2.19'
annotationProcessor 'com.google.dagger:dagger-compiler:2.19'

En outre, supprimez celui-ci:

//apply plugin: 'com.neenbedankt.Android-apt'
0
AndroSco