Android Gradle eklentisi 3.3.0 (Ocak 2019)

Android eklentisinin bu sürümü için aşağıdakiler gereklidir:

Minimum sürüm Varsayılan sürüm Notlar
Gradle 4.10.1 4.10.1 Daha fazla bilgi için Gradle'i güncelleme başlıklı makaleyi inceleyin. Gradle 5.0 ve sonraki sürümler kullanıldığında varsayılan Gradle daemon bellek yığın boyutu 1 GB'tan 512 MB'a düşürülür. Bu durum, derleme performansında gerilemeyle sonuçlanabilir. Bu varsayılan ayarı geçersiz kılmak için projenizin gradle.properties dosyasında Gradle daemon yığın boyutunu belirtin.
SDK Oluşturma Araçları 28.0.3 28.0.3 SDK Oluşturma Araçları'nı yükleyin veya yapılandırın.

3.3.3 (Temmuz 2020)

Bu küçük güncelleme, Android 11'de paket görünürlüğü ile ilgili yeni varsayılan ayar ve özelliklerle uyumluluğu destekler.

Ayrıntılar için 4.0.1 sürüm notlarına bakın.

3.3.2 (Mart 2019)

Bu küçük güncelleme, Android Studio 3.3.2'yi destekler ve çeşitli hata düzeltmeleri ile performans iyileştirmeleri içerir. Dikkat çeken hata düzeltmelerinin listesini görmek için Sürüm Güncellemeleri blogundaki ilgili yayını okuyun.

3.3.1 (Şubat 2019)

Bu küçük güncelleme, Android Studio 3.3.1'i destekler ve çeşitli hata düzeltmeleri ile performans iyileştirmeleri içerir.

Yeni özellikler

  • Daha iyi sınıf yolu senkronizasyonu: Android Gradle eklentisi, çalışma zamanındaki ve derleme zamanındaki sınıf yollarınızdaki bağımlılıkları çözerken birden fazla sınıf yolunda görünen bağımlılıklar için belirli yayın sonrası sürüm çakışmalarını düzeltmeye çalışır.

    Örneğin, çalışma zamanı sınıf yolu A Kitaplığı 2.0 sürümünü ve derleme sınıf yolu A Kitaplığı 1.0 sürümünü içeriyorsa eklenti, hataları önlemek için derleme sınıf yolundaki bağımlılığı A Kitaplığı 2.0 sürümüne otomatik olarak günceller.

    Ancak çalışma zamanı sınıf yolu A Kitaplığı 1.0 sürümünü, derleme ise A Kitaplığı 2.0 sürümünü içeriyorsa eklenti, derleme sınıf yolundaki bağımlılığı A Kitaplığı 1.0 sürümüne düşürmez ve bir hata alırsınız. Daha fazla bilgi edinmek için Classpath'ler arasındaki çatışmaları düzeltme başlıklı makaleyi inceleyin.

  • Notlandırıcı işleyiciler kullanılırken artımlı Java derlemesi iyileştirildi: Bu güncelleme, notlandırıcı işleyiciler kullanılırken artımlı Java derlemesi desteğini iyileştirerek derleme süresini kısaltır.

    Not: Bu özellik, Gradle 8194 numaralı sorunu nedeniyle Gradle 5.1 hariç Gradle 4.10.1 ve sonraki sürümlerle uyumludur.

    • Kapt kullanan projeler için (yalnızca Kotlin projeleri ve Kotlin-Java karma projeleri): Veri bağlama veya retro-lambda eklentisini kullansanız bile artımlı Java derlemesi etkindir. Kapt görevi tarafından gerçekleştirilen ek açıklama işleme henüz artımlı değildir.

    • Kapt'ı kullanmayan projeler (yalnızca Java projeleri): Kullandığınız ek açıklama işleyicilerin tümü artımlı ek açıklama işlemeyi destekliyorsa artımlı Java derlemesi varsayılan olarak etkindir. Artımlı ek açıklama işleyicinin benimsenmesini izlemek için Gradle 5277 sorununu izleyin.

      Ancak bir veya daha fazla ek açıklama işleyici ek derlemeleri desteklemiyorsa ek Java derlemesi etkinleştirilmez. Bunun yerine, gradle.properties dosyanıza aşağıdaki işareti ekleyebilirsiniz:

      android.enableSeparateAnnotationProcessing=true
                  

      Bu işareti eklediğinizde Android Gradle eklentisi, ek açıklama işleyicilerini ayrı bir görevde yürütür ve Java derleme görevinin kademeli olarak çalışmasına izin verir.

  • Kullanımdan kaldırılmış API'ler kullanırken daha iyi hata ayıklama bilgileri: Eklenti, artık desteklenmeyen bir API kullandığınızı tespit ettiğinde bu API'nin nerede kullanıldığını belirlemenize yardımcı olmak için daha ayrıntılı bilgi sağlayabilir. Ek bilgileri görmek için projenizin gradle.properties dosyasına aşağıdakileri eklemeniz gerekir:

              android.debug.obsoleteApi=true
            

    İşareti, komut satırından -Pandroid.debug.obsoleteApi=true ile de etkinleştirebilirsiniz.

  • Komut satırından özellik modüllerinde enstrümantasyon testleri çalıştırabilirsiniz.

Davranışta yapılan değişiklikler

  • Tembel görev yapılandırması: Eklenti artık mevcut derlemeyi tamamlamak için gerekli olmayan görevleri (veya yürütme görevi grafiğinde bulunmayan görevleri) başlatmayı ve yapılandırmayı önlemek amacıyla Gradle'ın yeni görev oluşturma API'sini kullanıyor. Örneğin, "sürüm" ve "hata ayıklama" derleme varyantları gibi birden fazla derleme varyantınız varsa ve uygulamanızın "hata ayıklama" sürümünü derliyorsanız eklenti, uygulamanızın "sürüm" sürümü için görevleri başlatmaktan ve yapılandırmaktan kaçınır.

    Variants API'deki variant.getJavaCompile() gibi eski yöntemlerin çağrılması, görev yapılandırmasını zorlamaya devam edebilir. Derlemenizin, tembel görev yapılandırması için optimize edildiğinden emin olmak amacıyla, variant.getJavaCompileProvider() gibi bir TaskProvider nesnesi döndüren yeni yöntemler çağırın.

    Özel derleme görevleri yürütüyorsanız Gradle'ın yeni görev oluşturma API'sine nasıl uyum sağlayacağınızı öğrenin.

  • Belirli bir derleme türü için useProguard false ayarlanırken artık eklenti, uygulamanızın kodunu ve kaynaklarını küçültmek ve karartmak için ProGuard yerine R8'i kullanıyor. R8 hakkında daha fazla bilgi edinmek için Android Developers Blogu'ndaki bu blog yayınını okuyun.

  • Kütüphane projeleri için daha hızlı R sınıfı oluşturma: Daha önce Android Gradle eklentisi, projenizin her bağımlılığı için bir R.java dosyası oluşturup bu R sınıflarını uygulamanızın diğer sınıflarıyla birlikte derliyordu. Eklenti artık önce ara R.java sınıfları oluşturmadan doğrudan uygulamanızın derlenmiş R sınıfını içeren bir JAR dosyası oluşturuyor. Bu optimizasyon, birçok kitaplık alt projesi ve bağımlılığı içeren projelerin derleme performansını önemli ölçüde artırabilir ve Android Studio'da dizine ekleme hızını iyileştirebilir.

  • Android App Bundle oluştururken, bu uygulama paketinden oluşturulan ve Android 6.0 (API düzeyi 23) veya sonraki sürümleri hedefleyen APK'lar artık varsayılan olarak yerel kitaplıklarınızın sıkıştırılmamış sürümlerini içeriyor. Bu optimizasyon, cihazın kitaplığın bir kopyasını oluşturmasını önler ve böylece uygulamanızın disk üzerindeki boyutunu azaltır. Bu optimizasyonu devre dışı bırakmak isterseniz gradle.properties dosyanıza aşağıdakileri ekleyin:

    android.bundle.enableUncompressedNativeLibs = false
            
  • Eklenti, bazı üçüncü taraf eklentilerinin minimum sürümlerini zorunlu kılar.

  • Tek varyantlı proje senkronizasyonu: Projenizi derleme yapılandırmanızla senkronize etmek, Android Studio'nun projenizin nasıl yapılandırıldığını anlamasını sağlamada önemli bir adımdır. Ancak bu süreç, büyük projeler için zaman alabilir. Projenizde birden fazla derleme varyantı kullanılıyorsa proje senkronizasyonlarını yalnızca şu anda seçtiğiniz varyantla sınırlayarak optimize edebilirsiniz.

    Bu optimizasyonu etkinleştirmek için Android Gradle eklentisinin 3.3.0 veya daha yeni bir sürümünü içeren Android Studio 3.3 veya daha yeni bir sürümü kullanmanız gerekir. Bu koşulları karşıladığınızda IDE, projenizi senkronize Optimizasyon, yeni projelerde de varsayılan olarak etkindir.

    Bu optimizasyonu manuel olarak etkinleştirmek için Dosya > Ayarlar > Deneysel > Gradle'i (Mac'te Android Studio > Tercihler > Deneysel > Gradle) tıklayın ve Yalnızca etkin varyantı senkronize et onay kutusunu işaretleyin.

    Not: Bu optimizasyon, Java ve C++ dillerini içeren projeleri tam olarak destekler ve Kotlin için bazı destek sunar. Kotlin içeriği olan projeler için optimizasyon etkinleştirildiğinde Gradle senkronizasyonu, dahili olarak tam varyantları kullanmaya geri döner.

  • Eksik SDK paketlerinin otomatik olarak indirilmesi: Bu işlev, NDK'yı desteklemek için genişletildi. Daha fazla bilgi edinmek için Gradle ile eksik paketleri otomatik olarak indirme başlıklı makaleyi inceleyin.

Hata Düzeltmeleri

  • Android Gradle eklentisi 3.3.0 aşağıdaki sorunları düzeltir:

    • Jetifier etkin olmasına rağmen derleme işleminin AndroidX sürümü yerine android.support.v8.renderscript.RenderScript simgesini çağırması
    • Statik olarak paketlenmiş annotation.AnyRes dahil olmak üzere androidx-rs.jar nedeniyle çakışmalar
    • RenderScript'i kullanırken artık build.gradle dosyalarınızda Build Tools sürümünü manuel olarak ayarlamanız gerekmez