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?

Bronx
sumber

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.

Gabriele Mariotti
sumber
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

Ojonugwa Jude Ochalifu
sumber
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

Octavian Ionel
sumber
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"
superuserdo
sumber
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']
            }
        }
    }
}
jox
sumber