it-swarm.com.de

Inkompatible Plugins für Android-apt nach dem Upgrade auf Android Studio 2.3

Nach dem Upgrade von 2.2 auf 2.3 sehe ich diese Warnung

 enter image description here

und wenn ich versuche, das Projekt zu kompilieren, sehe ich diesen Kompilierungsfehler

 enter image description here

Wie kann ich dieses Problem lösen, ohne auf eine ältere Version zurückgreifen zu müssen? Gibt es ein Update von Android-apt, das dieses Problem lösen kann?

87
Bronx

Das Android-apt-Plugin ist veraltet.
Hier finden Sie den Migrationsleitfaden :

Ab dem Android Gradle Plugin Version 2.2 sind alle Funktionen, die zuvor von Android-apt bereitgestellt wurden, nun im Android Plugin verfügbar.

Sie können Android-apt entfernen, indem Sie dem Migrationshandbuch folgen, um die entsprechenden Funktionen zu erhalten.

Die wichtigen Teile des Migrationsleitfadens:

  • Stellen Sie sicher, dass Sie sich im Android Gradle 2.2-Plugin oder neuer befinden.
  • Entfernen Sie das Android-apt-Plugin aus Ihren Build-Skripts
  • Ändern Sie alle Abhängigkeiten von apt, androidTestApt und testApt in ihr neues Format:
dependencies {
   compile 'com.google.dagger:dagger:2.0'
   annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
}

Auch im Android Gradle-Plugin gibt es eine explizite Prüfung, die Sie hier sehen:

verwendung von inkompatiblen Plugins für die Anmerkungsverarbeitung von Android-apt

Zukünftige Android Gradle-Plugin-Versionen werden nicht mit der Funktionsweise von Android-apt kompatibel sein. Dies ist der Grund für diese Überprüfung.

159

Ich habe diesen Fehler bei der Verwendung der Vault - Bibliothek von Contentful festgestellt, in der Folgendes angegeben ist:

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

und 

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

Was Sie tun müssen, ist LÖSCHENapply plugin: 'com.neenbedankt.Android-apt'

und dann CHANGE:

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

zu

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

Sie können immer https://github.com/contentful/vault auf die neuesten Versionen überprüfen

36
  1. Apt plugin entfernen

  2. Veränderung:

    apt -> kompilieren

    testApt -> testAnnotationProcessor

    androidTestApt -> androidTestAnnotationProcessor

  3. Fügen Sie in Ihrem build.gradle (app) zu defaultConfig hinzu:

vectorDrawables.useSupportLibrary = true

13
Octavian Ionel

Huckepack auf @Gabriele Mariotti hier, da seine Antwort ziemlich genau ist und dies impliziert, aber nicht sagt. Gradle schlägt dies auch nicht als gültige Option vor, obwohl dies ebenfalls der Fall ist. Das Testäquivalent für androidTestApt und testApt ist androidTestAnnotationProcessor und testAnnotationProcessor.

Beispiel:

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

Sollte in geändert werden 

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

Falls der Anmerkungsprozessor Argumente hat, muss dies möglicherweise auch geändert werden: 

apt {
    arguments {
        KEY "VALUE"
    }
}

zu diesem:

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