Android Studio 2.3'e yükselttikten sonra android-apt için uyumsuz eklentiler


101

2.2'den 2.3'e yükselttikten sonra bu uyarıyı görüyorum

görüntü açıklamasını buraya girin

ve projeyi derlemeye çalıştığımda bu derleme hatasını görüyorum

görüntü açıklamasını buraya girin

Önceki bir gradle sürümüne geçmeden bu sorunu nasıl çözebilirim? Bu sorunu çözebilecek herhangi bir android-apt güncellemesi var mı?

Yanıtlar:


180

android-aptEklenti dışı bırakılmıştır . Geçiş kılavuzu
için burayı kontrol edin :

Android Gradle eklentisi sürüm 2.2'den itibaren, daha önce android-apt tarafından sağlanan tüm işlevler artık Android eklentisinde mevcuttur.

android-aptEşdeğer işlevleri elde etmek için geçiş kılavuzunu takip ederek kaldırabilirsiniz .

Geçiş kılavuzunun önemli bölümleri :

  • Android Gradle 2.2 eklentisini veya daha yenisini kullandığınızdan emin olun.
  • android-aptEklentiyi derleme komut dosyalarınızdan kaldırın
  • Tüm değiştirin apt, androidTestAptve testAptonların yeni biçime bağımlılıkları:
dependencies {
   compile 'com.google.dagger:dagger:2.0'
   annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
}

Ayrıca Android Gradle eklentisinde bunun için açık bir kontrol var, gördüğünüz şey bu:

Ek açıklama işleme android-apt için uyumsuz eklentiler kullanma

Gelecekteki Android Gradle eklenti sürümleri,android-apt bu kontrolün nedeni olan çalışma şekliyle uyumlu olmayacaktır .


Teşekkürler! Apt'ın kullanımdan kaldırıldığını bilmiyordum.
Bronx

1
Ve Android Gradle eklentisinde Google'ın bunun için açık bir kontrolü var, gördüğünüz şey bu. Gelecekteki Android Gradle sürümleri, android-aptbu kontrolün nedeni olan çalışma şekli ile uyumlu olmayacaktır .
botteaap

çek nerede?
ericn

Herhangi bir hakkım yok ama yine de bu uyarıyı alıyorum. DÜZENLEME: Realm olduğu ortaya çıktı
behelit

Kodumda hiçbir yerde NDROID-pt görmedim, ancak hata alıyorum. Sorun ne olabilir?
Mubashar

48

Benim için, Contentful'un Vaultaşağıdakileri dahil ettiğinizi belirten kitaplığını kullanırken bu hatayı yaşıyordum :

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

ve

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

Yapmanız gereken şey SİLMEK apply plugin: 'com.neenbedankt.android-apt'

ve sonra DEĞİŞTİR :

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

-e

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

En son sürümler için her zaman https://github.com/contentful/vault adresini kontrol edebilirsiniz .


15
  1. Apt eklentisini kaldır

  2. Değişiklik:

    apt -> derleme

    testApt -> testAnnotationProcessor

    androidTestApt -> androidTestAnnotationProcessor

  3. Build.gradle (uygulamanızda), defaultConfig'e ekleyin:

vectorDrawables.useSupportLibrary = true


6

Buradaki @Gabriele Mariotti'ye piggybacking, çünkü cevabı oldukça açık ve bunu ima ediyor ama bunu belirtmiyor. Gradle, öyle olsa da bunu geçerli bir seçenek olarak önermiyor. Test eşdeğeri için androidTestAptve testAptbir androidTestAnnotationProcessorve testAnnotationProcessor.

Misal:

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

Olarak değiştirilmelidir

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

1

Ek açıklama işlemcisinin argümanları olması durumunda, bunu değiştirmek de gerekebilir:

apt {
    arguments {
        KEY "VALUE"
    }
}

buna:

android {
    ...
    defaultConfig {
        ...
        javaCompileOptions {
            annotationProcessorOptions {
                arguments = ['KEY': 'VALUE']
            }
        }
    }
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.