Android Gradle Eklentisi 3.1.0 (Mart 2018)

Android eklentisinin bu sürümü için gerekenler:

  • Gradle 4.4 veya sonraki sürümler.

    Daha fazla bilgi için Gradle'ı güncelleme bölümünü okuyun.

  • Build Tools 27.0.3 veya üzeri sürümler.

    Eklenti varsayılan olarak gereken en düşük sürümü kullanır. Bu nedenle android.buildToolsVersion özelliğini kullanarak derleme araçları için artık bir sürüm belirtmenize gerek olmadığını unutmayın.

Yeni DEX derleyicisi, D8

Android Studio artık D8 adında yeni bir DEX derleyici varsayılan olarak kullanılıyor. DEX derleme, Android Runtime (veya Android'in eski sürümlerinde Dalvik) için .class bayt kodunu .dex bayt koduna dönüştürme işlemidir. DX adlı önceki derleyiciye kıyasla D8, uygulama çalışma zamanı performansı aynı veya daha iyiyken daha hızlı derler ve daha küçük DEX dosyaları çıkarır.

D8, günlük uygulama geliştirme iş akışınızı değiştirmeyecektir. Ancak yeni derleyiciyle ilgili herhangi bir sorun yaşarsanız lütfen hata bildiriminde bulunun. Projenizin gradle.properties dosyasına aşağıdakileri ekleyerek D8'i geçici olarak devre dışı bırakabilir ve DX'i kullanabilirsiniz:

      android.enableD8=false
    

Java 8 dili özelliklerini kullanan projeler için artımlı şeker giderme varsayılan olarak etkindir. Projenizin gradle.properties dosyasında aşağıdakileri belirterek bu özelliği devre dışı bırakabilirsiniz:

      android.enableIncrementalDesugaring=false.
    

Önizleme kullanıcıları: D8'in önizleme sürümünü kullanıyorsanız bu sürümün artık JDK'ye değil, SDK derleme araçlarındaki kitaplıklara göre derlendiğini unutmayın. Bu nedenle, JDK'da bulunan ancak SDK derleme araçları kitaplıklarında bulunmayan API'lere erişiyorsanız bir derleme hatası alırsınız.

Davranış değişiklikleri

  • Her biri farklı bir ABI'yi hedefleyen birden fazla APK oluşturulurken, artık varsayılan olarak şu ABI'ler için APK oluşturmaz: mips, mips64 ve armeabi.

    Bu ABI'leri hedefleyen APK'lar oluşturmak isterseniz NDK r16b veya daha düşük bir kullanmanız ve ABI'leri aşağıda gösterildiği gibi build.gradle dosyanızda belirtmeniz gerekir:

              splits {
                  abi {
                      include 'armeabi', 'mips', 'mips64'
                      ...
                  }
              }
            
              splits {
                  abi {
                      include("armeabi", "mips", "mips64")
                      ...
                  }
              }
            
  • Android eklentisinin önbelleği oluşturma özelliği artık 30 günden daha eski önbellek girişlerini kaldırıyor.

  • "auto" öğesinin resConfig hizmetine iletilmesi, APK'nıza paketlemek için dize kaynakları artık otomatik olarak seçilmez. "auto" öğesini kullanmaya devam ederseniz eklenti, uygulamanızın ve bağımlılıklarının sağladığı tüm dize kaynaklarını paketler. Bu yüzden, bunun yerine, eklentinin APK'nıza paketlemesini istediğiniz her bir yerel ayarı belirtmeniz gerekir.

  • Yerel modüller uygulamanızın test APK'sına bağlı olamayacağından, desteklenen testlerinize androidTestImplementation yerine androidTestApi yapılandırmasını kullanarak bağımlılık eklemek, Gradle'ın aşağıdaki uyarıyı vermesine neden olur:

            WARNING: Configuration 'androidTestApi' is obsolete
            and has been replaced with 'androidTestImplementation'
            
            WARNING: Configuration 'androidTestApi' is obsolete
            and has been replaced with 'androidTestImplementation'
            

Düzeltmeler

  • Android Studio'nun kompozit derlemelerdeki bağımlılıkları düzgün tanımadığı bir sorunu düzeltir.
  • Android eklentisini tek bir derlemede birden fazla kez yüklerken proje senkronizasyon hatasıyla karşılaştığınız sorunu düzeltir. Örneğin, birden fazla alt projenin derleme komut dosyası sınıf yolunda Android eklentisini içermesi gibi.