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 ...
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
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'
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'
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'