Plugin incompatibili per Android-apt dopo l'aggiornamento ad Android Studio 2.3


101

Dopo l'aggiornamento dalla 2.2 alla 2.3 vedo questo avviso

inserisci qui la descrizione dell'immagine

e quando provo a compilare il progetto vedo questo errore di compilazione

inserisci qui la descrizione dell'immagine

Come posso risolvere questo problema senza eseguire il downgrade a una versione gradle precedente? Esiste un aggiornamento di Android-apt in grado di risolvere questo problema?

Risposte:


179

Il android-aptplugin è stato deprecato .
Controlla qui per la guida alla migrazione :

A partire dalla versione 2.2 del plug-in Android Gradle, tutte le funzionalità precedentemente fornite da Android-apt sono ora disponibili nel plug-in Android.

È possibile rimuovere android-aptseguendo la guida alla migrazione per ottenere le funzionalità equivalenti.

Le parti importanti della guida alla migrazione :

  • Assicurati di essere sul plug-in Android Gradle 2.2 o più recente.
  • Rimuovi il android-aptplug-in dagli script di build
  • Modificare tutti apt, androidTestApte testAptle dipendenze al loro nuovo formato:
dependencies {
   compile 'com.google.dagger:dagger:2.0'
   annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
}

Anche nel plugin Android Gradle c'è un controllo esplicito per questo, che è quello che stai vedendo:

utilizzando plugin incompatibili per l'elaborazione delle annotazioni android-apt

Le future versioni del plugin Android Gradle non saranno compatibili con il modo in cui android-aptfunziona, motivo per cui tale controllo.


Grazie! Non sapevo che apt fosse deprecato.
— Bronx

1
E nel plug-in Android Gradle Google ne ha un controllo esplicito, che è quello che stai vedendo. Le future versioni di Android Gradle non saranno compatibili con il modo in cui android-aptfunziona, motivo per cui tale controllo.
— Botteaap

dov'è l'assegno?
— ericn

Non ho alcun apt ma ricevo ancora questo avviso. EDIT: Si scopre che era reame
— behelit

Non ho visto NDROID-pt nel mio codice da nessuna parte, ma ho ricevuto un errore. Quale potrebbe essere il problema?
— Mubashar

47

Per me, ho riscontrato questo errore durante l'utilizzo della Vaultlibreria di Contentful che specifica che includi:

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

e

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

Quello che devi fare è CANCELLARE apply plugin: 'com.neenbedankt.android-apt'

e poi CAMBIA :

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

per

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

Puoi sempre controllare https://github.com/contentful/vault per le versioni più recenti


15
  1. Rimuovi il plugin apt

  2. Modificare:

    apt -> compilare

    testApt -> testAnnotationProcessor

    androidTestApt -> androidTestAnnotationProcessor

  3. Nel tuo build.gradle (app), aggiungi a defaultConfig:

vectorDrawables.useSupportLibrary = true


6

Piggybacking su @Gabriele Mariotti qui poiché la sua risposta è abbastanza azzeccata e implica questo ma non lo afferma. Gradle inoltre non suggerisce questa come un'opzione valida sebbene lo sia anche. L'equivalente di test per androidTestApte testAptè androidTestAnnotationProcessore testAnnotationProcessor.

Esempio:

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

Dovrebbe essere cambiato in

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

1

Nel caso in cui il processore di annotazioni abbia argomenti, potrebbe essere necessario modificare anche questo:

apt {
    arguments {
        KEY "VALUE"
    }
}

a questa:

android {
    ...
    defaultConfig {
        ...
        javaCompileOptions {
            annotationProcessorOptions {
                arguments = ['KEY': 'VALUE']
            }
        }
    }
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.