Plugin tidak kompatibel untuk android-apt setelah meningkatkan ke Android Studio 2.3


101

Setelah meningkatkan dari 2.2 ke 2.3 saya melihat peringatan ini

masukkan deskripsi gambar di sini

dan ketika saya mencoba untuk mengkompilasi proyek saya melihat kesalahan kompilasi ini

masukkan deskripsi gambar di sini

Bagaimana saya bisa mengatasi masalah ini tanpa menurunkan ke versi gradle sebelumnya? Apakah ada pembaruan android-apt yang dapat menyelesaikan masalah ini?

Jawaban:


179

The android-aptPlugin telah usang .
Lihat di sini untuk panduan migrasi :

Sejak plugin Android Gradle versi 2.2, semua fungsionalitas yang sebelumnya disediakan oleh android-apt kini tersedia di plugin Android.

Anda dapat menghapus android-aptdengan mengikuti panduan migrasi untuk mendapatkan fungsi yang setara.

Bagian penting dari panduan migrasi :

  • Pastikan Anda menggunakan plugin Android Gradle 2.2 atau yang lebih baru.
  • Hapus android-aptplugin dari skrip build Anda
  • Ubah semua apt, androidTestAptdan testAptdependensi ke format barunya:
dependencies {
   compile 'com.google.dagger:dagger:2.0'
   annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
}

Juga di plugin Android Gradle ada pemeriksaan eksplisit untuk ini, yang Anda lihat:

menggunakan plugin yang tidak kompatibel untuk pemrosesan anotasi android-apt

Versi plugin Android Gradle di masa mendatang tidak akan kompatibel dengan cara android-aptkerjanya, itulah alasan untuk pemeriksaan tersebut.


Terima kasih! Saya tidak tahu bahwa apt sudah usang.
Bronx

1
Dan di plugin Android Gradle, Google memiliki pemeriksaan eksplisit untuk itu, yang Anda lihat. Versi Android Gradle yang akan datang tidak akan kompatibel dengan cara android-aptkerjanya, itulah alasan untuk pemeriksaan itu.
botteaap

dimana ceknya?
ericn

Saya tidak memiliki apt tetapi masih mendapatkan peringatan ini. EDIT: Ternyata itu dunia
lihat

Saya tidak melihat NDROID-pt dalam kode saya di mana pun, tetapi mendapatkan kesalahan. Apa masalahnya?
Mubashar

47

Bagi saya, saya mengalami kesalahan ini saat menggunakan pustaka Contentful Vaultyang menentukan bahwa Anda menyertakan:

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

dan

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

Yang perlu Anda lakukan adalah HAPUS apply plugin: 'com.neenbedankt.android-apt'

lalu GANTI :

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

untuk

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

Anda selalu dapat memeriksa https://github.com/contentful/vault untuk versi terbaru


15
  1. Hapus plugin apt

  2. Perubahan:

    apt -> kompilasi

    testApt -> testAnnotationProcessor

    androidTestApt -> androidTestAnnotationProcessor

  3. Di build.gradle (app) Anda, tambahkan ke defaultConfig:

vectorDrawables.useSupportLibrary = true


6

Membonceng @Gabriele Mariotti di sini karena jawabannya sangat tepat dan menyiratkan ini tetapi tidak menyatakannya. Gradle juga tidak menyarankan ini sebagai opsi yang valid. Pengujian yang setara untuk androidTestAptdan testAptadalah androidTestAnnotationProcessordan testAnnotationProcessor.

Contoh:

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

Harus diubah menjadi

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

1

Jika pemroses anotasi memiliki argumen, Anda mungkin juga harus mengubah ini:

apt {
    arguments {
        KEY "VALUE"
    }
}

untuk ini:

android {
    ...
    defaultConfig {
        ...
        javaCompileOptions {
            annotationProcessorOptions {
                arguments = ['KEY': 'VALUE']
            }
        }
    }
}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.