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.