web-dev-qa-db-fra.com

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

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

 enter image description here

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

 enter image description here

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

87
Bronx

Le plugin Android-aptest obsolète.
Consultez ici le guide de migration :

Depuis la version 2.2 du plugin Android Gradle, toutes les fonctionnalités précédemment fournies par Android-apt sont désormais disponibles dans le plugin Android.

Vous pouvez supprimer Android-apt en suivant le guide de migration pour obtenir les fonctionnalités équivalentes.

Les parties importantes du guide migration:

  • Assurez-vous que vous êtes sur le plugin Android Gradle 2.2 ou plus récent.
  • Supprimer le plugin Android-apt de vos scripts de construction
  • Remplacez toutes les dépendances apt, androidTestApt et testApt par leur nouveau format:
dependencies {
   compile 'com.google.dagger:dagger:2.0'
   annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
}

Il existe également une vérification explicite dans le plug-in Android Gradle, qui correspond à ce que vous voyez:

utiliser des plugins incompatibles pour le traitement des annotations Android-apt

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

159

Pour moi, je rencontrais cette erreur en utilisant la bibliothèque Vault 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, c'est SUPPRIMERapply plugin: 'com.neenbedankt.Android-apt'

puis CHANGE:

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 vérifier https://github.com/contentful/vault pour les dernières versions

36
  1. Supprimer le plugin apt

  2. Changement:

    apt -> compiler

    testApt -> testAnnotationProcessor

    androidTestApt -> androidTestAnnotationProcessor

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

vectorDrawables.useSupportLibrary = true

13
Octavian Ionel

Piggybacking sur @Gabriele Mariotti ici car sa réponse est assez exacte et implique cela mais ne l'indique pas. Gradle ne suggère pas non plus cela comme une option valable, bien que ce soit également le cas. L'équivalent de test pour androidTestApt et testApt est androidTestAnnotationProcessor et testAnnotationProcessor.

Exemple:

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

Devrait être changé en 

testAnnotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion"
androidTestAnnotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion"
6
superuserdo

Si le processeur d'annotation a des arguments, vous devrez peut-être aussi changer ceci: 

apt {
    arguments {
        KEY "VALUE"
    }
}

pour ça:

Android {
    ...
    defaultConfig {
        ...
        javaCompileOptions {
            annotationProcessorOptions {
                arguments = ['KEY': 'VALUE']
            }
        }
    }
}
0
jox