Niezgodne wtyczki dla Androida-apt po aktualizacji do Android Studio 2.3

101

Po aktualizacji z 2.2 do 2.3 widzę to ostrzeżenie

wprowadź opis obrazu tutaj

a kiedy próbuję skompilować projekt, widzę ten błąd kompilacji

wprowadź opis obrazu tutaj

Jak mogę rozwiązać ten problem bez przechodzenia na poprzednią wersję Gradle? Czy jest jakaś aktualizacja Androida-apt, która może rozwiązać ten problem?

Bronx
źródło

Odpowiedzi:

179

android-aptWtyczka została zaniechana .
Sprawdź tutaj przewodnik po migracji :

Począwszy od wersji 2.2 wtyczki Android Gradle, wszystkie funkcje, które wcześniej zapewniał Android-apt, są teraz dostępne we wtyczce Android.

Możesz usunąć android-apt, postępując zgodnie z przewodnikiem migracji, aby uzyskać równoważne funkcje.

Ważne części przewodnika migracji :

  • Upewnij się, że korzystasz z wtyczki Android Gradle 2.2 lub nowszej.
  • Usuń android-aptwtyczkę ze swoich skryptów kompilacji
  • Zmień wszystkie apt, androidTestApti testAptzależności do ich nowego formatu:
dependencies {
   compile 'com.google.dagger:dagger:2.0'
   annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
}

Również we wtyczce Android Gradle istnieje wyraźna kontrola tego, co widzisz:

używanie niekompatybilnych wtyczek do przetwarzania adnotacji android-apt

Przyszłe wersje wtyczki Android Gradle nie będą zgodne ze sposobem android-aptdziałania, co jest powodem tego sprawdzenia.

Gabriele Mariotti
źródło
Dzięki! Nie wiedziałem, że apt został wycofany.
Bronx
1
A we wtyczce Android Gradle Google ma wyraźne sprawdzenie tego, co widzisz. Przyszłe wersje Androida Gradle nie będą zgodne ze sposobem android-aptdziałania, co jest powodem tego sprawdzenia.
botteaap
gdzie jest czek?
ericn
Nie mam żadnych apt, ale nadal otrzymuję to ostrzeżenie. EDYCJA: Okazuje się, że to była sfera
behelit
Nigdzie nie widziałem NDROID-pt w moim kodzie, ale pojawia się błąd. Jaki może być problem?
Mubashar
47

U mnie wystąpił ten błąd podczas korzystania z Vaultbiblioteki Contentful, która określa, że ​​uwzględniasz:

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

i

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

Musisz tylko USUŃ apply plugin: 'com.neenbedankt.android-apt'

a następnie ZMIEŃ :

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

do

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

Zawsze możesz sprawdzić https://github.com/contentful/vault, aby uzyskać najnowsze wersje

Ojonugwa Jude Ochalifu
źródło
15
  1. Usuń wtyczkę apt

  2. Zmiana:

    apt -> kompiluj

    testApt -> testAnnotationProcessor

    androidTestApt -> androidTestAnnotationProcessor

  3. W pliku build.gradle (aplikacja) dodaj do defaultConfig:

vectorDrawables.useSupportLibrary = true

Octavian Ionel
źródło
6

Na piggybacking na @Gabriele Mariotti tutaj, ponieważ jego odpowiedź jest całkiem trafna i sugeruje to, ale nie stwierdza tego. Gradle również nie sugeruje, że jest to prawidłowa opcja, chociaż tak jest. Odpowiednik testowy dla androidTestApti testAptto androidTestAnnotationProcessori testAnnotationProcessor.

Przykład:

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

Powinien zostać zmieniony na

testAnnotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion"
androidTestAnnotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion"
superuserdo
źródło
1

W przypadku, gdy procesor adnotacji ma argumenty, może być konieczna zmiana tego:

apt {
    arguments {
        KEY "VALUE"
    }
}

do tego:

android {
    ...
    defaultConfig {
        ...
        javaCompileOptions {
            annotationProcessorOptions {
                arguments = ['KEY': 'VALUE']
            }
        }
    }
}
jox
źródło