101 votes

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

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

enter image description here

et lorsque 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 le retour à une précédente gradle version? Est-il une mise à jour d'android-apt qui peut résoudre ce problème?

181voto

Gabriele Mariotti Points 7243

L' android-apt plugin a été désapprouvée.
Consultez ici le guide de migration:

Que de l'Android plugin Gradle version 2.2, toutes les fonctionnalités qui étaient auparavant fournis par android-apt est maintenant disponible dans l'Android plugin.

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

Les éléments importants à partir du guide de migration:

  • Assurez-vous que vous êtes sur l'Android Gradle 2.2 plugin ou plus récent.
  • Supprimer l' android-apt plugin à partir de vos scripts
  • Changer tous apt, androidTestApt et testApt dépendances à leur nouveau format:
dependencies {
   compile 'com.google.dagger:dagger:2.0'
   annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
}

Aussi dans l'Android plugin Gradle il y a une vérification explicite pour ce, qui est ce que vous voyez:

à l'aide de plugins incompatibles pour l'annotation processing android-apt

Futur Android Gradle versions plugin ne sera pas compatible avec le chemin android-apt œuvres, ce qui est la raison de cette vérification.

48voto

ojonugwa ochalifu Points 14742

Pour moi, j'ai eu cette erreur lors de l'utilisation Contentful de l' Vault bibliothèque qui indique que vous avez inclus:

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 de SUPPRIMER apply plugin: 'com.neenbedankt.android-apt'

et puis le CHANGEMENT:

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

pour

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 versions les plus récentes

15voto

Octavian Ionel Points 366
  1. Supprimer le plugin apt

  2. Changement:

    apt -> compiler

    testApt -> testAnnotationProcessor

    androidTestApt -> androidTestAnnotationProcessor

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

vectorDrawables.useSupportLibrary = true

6voto

superuserdo Points 86

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"
 

1voto

jox Points 75

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']
            }
        }
    }
}
 

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