51 votes

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

Après avoir mis à jour Android Studio à la version 2.3, j'ai 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...

0 votes

Android studio dispose désormais d'un traitement intégré des annotations au moment de la compilation - vous pouvez supprimer l'utilisation de la balise android-apt et utiliser annotationProcessor à la place. Je ne connais pas votre cas particulier d'utilisation de l'Internet. andorid-apt mais vous devez vérifier la dernière configuration de gradle pour la dépendance pour laquelle vous l'utilisez.

0 votes

Je dois donc modifier l'application du plugin : 'com.neenbedankt.Android-apt' en appliquant le plugin : 'com.neenbedankt.annotationProcessor' ?

0 votes

Non @K.Kempski vous n'avez pas besoin d'appliquer un plugin maintenant. Il suffit d'utiliser annotationProcessor ou de fournir in app gradle.

126voto

Mark Keen Points 4464

Les dépendances de votre application au niveau de gradle doivent inclure (selon les 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 est devenu disponible dans le plugin Android Gradle (2.2 et plus). Il n'est donc plus nécessaire d'utiliser le plugin ci-dessus si vous utilisez cette version de gradle ou une version supérieure.

Si vous souhaitez savoir comment désactiver et activer le traitement des annotations et AS le réglage est dans :

Paramètres > Build, Execution, Deployment > Compiler > Processeurs d'annotation

0 votes

Hé, j'ai le même problème. Mais je n'ai pas : appliquer le plugin : 'com.neenbedankt.Android-apt' OR annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1' écrit dans mon fichier build gradle. J'utilisais : compile 'com.jakewharton:butterknife:7.0.1' maintenant, après avoir ajouté les bibliothèques mises à jour et le processeur d'annotation, je ne peux toujours pas faire fonctionner mon projet et j'ai la même erreur. Avez-vous des suggestions ?

0 votes

@legalimpurity Dans votre commentaire ce : But I do not have : apply plugin: 'com.neenbedankt.android-apt' et ceci i still cant get my project to run and have the same error contredit ce que l'erreur est dans la question de l'OP ? Si gradle rapporte Warning:Using incompatible plugins for the annotation processing: android-apt. alors vous avez un conflit ou un plugin obsolète. Ou est-ce différent de ce que vous voulez dire ?

0 votes

J'ai également le même problème que celui décrit par @legalimpurity.

39voto

Milan Hlinák Points 1326

Dans mon projet, j'utilise, entre autres, 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 fonctionner.

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'

L'avertissement a disparu et tout fonctionne comme il se doit.

UPDATE

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.

Donc :

1) Supprimez le chemin de la classe pour l'apt de la section build.gradle (Projet : MonApplication)

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

2) Retirez la fiche de la build.gradle (Module : app)

apply plugin: 'android-apt'

3) Changez les dépendances de apt pour le nouveau annotationProcessor

annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
annotationProcessor 'org.immutables:value:2.4.4'

2voto

Akinola Olayinka Points 391

Pour compléter la réponse de @Milan, si vous avez utilisé la bibliothèque hotchemi permissiondispatcher dans votre fichier gradle au niveau de l'application, vous devez la remplacer comme suit :

Remplacer

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

avec

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

0voto

AndroSco Points 819

Au projet Gradle buildscript --> dependencies supprimez le deuxième bloc classpath ligne :

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 à l'application Gradle dependencies modifiez ces lignes, utilisez api y annotationProcessor :

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

Aussi, enlevez celui-ci :

//apply plugin: 'com.neenbedankt.android-apt'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X