Plugins incompatibles pour android-apt après la mise à niveau vers Android Studio 2.3

101

Après la mise à niveau de la version 2.2 vers la version 2.3, je vois cet avertissement

entrez la description de l'image ici

et quand j'essaye de compiler le projet, je vois cette erreur de compilation

entrez la description de l'image ici

Comment puis-je résoudre ce problème sans revenir à une version précédente de Gradle? Existe-t-il une mise à jour d'Android-apt qui peut résoudre ce problème?

Bronx
la source

Réponses:

179

Le android-aptplugin est obsolète .
Consultez ici le guide de migration :

Depuis la version 2.2 du plugin Android Gradle, toutes les fonctionnalités qui étaient auparavant fournies par android-apt sont désormais disponibles dans le plugin Android.

Vous pouvez supprimer android-apten suivant le guide de migration pour obtenir les fonctionnalités équivalentes.

Les parties importantes du guide de migration :

  • Assurez-vous que vous êtes sur le plugin Android Gradle 2.2 ou plus récent.
  • Supprimez le android-aptplugin de vos scripts de construction
  • Changer tous apt, androidTestAptet testAptdépendances à leur nouveau format:
dependencies {
   compile 'com.google.dagger:dagger:2.0'
   annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
}

Également dans le plugin Android Gradle, il y a une vérification explicite pour cela, c'est ce que vous voyez:

en utilisant des plugins incompatibles pour le traitement des annotations android-apt

Les futures versions du plugin Android Gradle ne seront pas compatibles avec le android-aptfonctionnement, ce qui est la raison de cette vérification.

Gabriele Mariotti
la source
Merci! Je ne savais pas qu'apt était obsolète.
Bronx
1
Et dans le plugin Android Gradle, Google a une vérification explicite, ce que vous voyez. Les futures versions d'Android Gradle ne seront pas compatibles avec le android-aptfonctionnement, ce qui est la raison de cette vérification.
botteaap
où est le chèque?
ericn
Je n'ai aucun apt mais je reçois toujours cet avertissement. EDIT: Il s'avère que c'était le royaume
behelit
Je n'ai vu NDROID-pt dans mon code nulle part, mais j'ai obtenu une erreur. Quel pourrait être le problème?
Mubashar
47

Pour moi, j'avais cette erreur lors de l'utilisation de la Vaultbibliothèque de Contentful qui spécifie que vous incluez:

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

et

compile 'com.contentful.vault:core:2.1.0'
apt 'com.contentful.vault:compiler:2.1.0'

Ce que vous devez faire est SUPPRIMER apply plugin: 'com.neenbedankt.android-apt'

puis CHANGER :

compile 'com.contentful.vault:core:2.1.0'
apt 'com.contentful.vault:compiler:2.1.0'

à

annotationProcessor 'com.contentful.vault:compiler:2.1.0'
annotationProcessor 'com.contentful.vault:core:3.0.1'

Vous pouvez toujours consulter https://github.com/contentful/vault pour les dernières versions

Ojonugwa Jude Ochalifu
la source
15
  1. Supprimer le plugin apt

  2. Changement:

    apt -> compiler

    testApt -> testAnnotationProcessor

    androidTestApt -> androidTestAnnotationProcessor

  3. Dans votre build.gradle (application), ajoutez à defaultConfig:

vectorDrawables.useSupportLibrary = true

Octavian Ionel
la source
6

Piggybacking sur @Gabriele Mariotti ici puisque sa réponse est assez précise et l'implique mais ne le dit pas. Gradle ne suggère pas non plus cela comme une option valide, bien que ce soit également le cas. L'équivalent de test pour androidTestAptet testAptest androidTestAnnotationProcessoret testAnnotationProcessor.

Exemple:

testApt "com.google.dagger:dagger-compiler:$daggerVersion"
androidTestApt "com.google.dagger:dagger-compiler:$daggerVersion"

Devrait être remplacé par

testAnnotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion"
androidTestAnnotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion"
superutilisateur
la source
1

Dans le cas où le processeur d'annotations a des arguments, il peut également être nécessaire de changer ceci:

apt {
    arguments {
        KEY "VALUE"
    }
}

pour ça:

android {
    ...
    defaultConfig {
        ...
        javaCompileOptions {
            annotationProcessorOptions {
                arguments = ['KEY': 'VALUE']
            }
        }
    }
}
jox
la source