Android Gradle Plugin 8.1.0 (Temmuz 2023)

Android Gradle eklentisi 8.1.0, çeşitli yeni özellikler ve iyileştirmeler içeren ana sürümdür.

Uyumluluk

Minimum sürüm Varsayılan sürüm Notlar
Gradle 8.0 8.0 Daha fazla bilgi edinmek için Gradle'ı güncelleme konusuna bakın.
SDK Oluşturma Araçları 33.0.1 33.0.1 SDK Derleme Araçlarını yükleyin veya yapılandırın.
400 Yok 25.1.8937393 Farklı bir NDK sürümü yükleyin veya yapılandırın.
JDK 17 17 Daha fazla bilgi edinmek için JDK sürümünü ayarlama bölümüne bakın.

Kotlin DSL, derleme yapılandırması için varsayılan seçenektir

Yeni projelerde artık derleme yapılandırması için varsayılan olarak Kotlin DSL (build.gradle.kts) kullanılıyor. Söz dizimi vurgulama, kod tamamlama ve beyanlarda gezinme özellikleriyle Groovy DSL'ye (build.gradle) kıyasla daha iyi bir düzenleme deneyimi sunar. Derleme yapılandırması için AGP 8.1 ve Kotlin DSL kullanıyorsanız en iyi deneyim için Gradle 8.1'i kullanmanız gerektiğini unutmayın. Daha fazla bilgi edinmek için Kotlin DSL geçiş rehberine bakın.

Uygulama başına otomatik dil desteği

Uygulamanızı, Android Studio Giraffe Canary 7 ve AGP 8.1.0-alpha07 sürümünden başlayarak uygulamaya özgü dil tercihlerini otomatik olarak destekleyecek şekilde yapılandırabilirsiniz. Android Gradle eklentisi, proje kaynaklarınıza bağlı olarak LocaleConfig dosyasını oluşturur ve nihai manifest dosyasına bir referans ekler. Böylece bu işlemi artık manuel olarak yapmanız gerekmez. AGP, LocaleConfig dosyasına dahil edilecek yerel ayarları belirlemek için uygulama modüllerinizin res klasörlerindeki kaynakları ve tüm kitaplık modülü bağımlılıklarını kullanır.

Uygulamaya özgü otomatik dil özelliğinin, Android 13 (API düzeyi 33) veya sonraki sürümleri çalıştıran uygulamaları desteklediğini unutmayın. Bu özelliği kullanmak için compileSdkVersion değerini 33 veya daha yüksek bir değere ayarlamanız gerekir. Android'in önceki sürümlerine ilişkin uygulamaya özgü dil tercihlerini yapılandırmak için yine de API'leri ve uygulama içi dil seçicileri kullanmanız gerekir.

Uygulama başına otomatik dil desteğini etkinleştirmek için varsayılan bir yerel ayar belirtin:

  1. Uygulama modülünün res klasöründe resources.properties adlı yeni bir dosya oluşturun.
  2. resources.properties dosyasında, varsayılan yerel ayarı unqualifiedResLocale etiketiyle belirleyin. Yerel ad oluşturmak için dil kodunu isteğe bağlı alfabe ve bölge kodlarıyla birleştirerek her birini kısa çizgiyle ayırın:

    • Dil: İki veya üç harfli ISO 639-1 kodunu kullanın.
    • Metin (isteğe bağlı): ISO 15924 kodunu kullanın.
    • Bölge (isteğe bağlı): İki harfli ISO 3166-1-alpha-2 kodunu veya üç haneli UN_M.49 kodunu kullanın.

    Örneğin, varsayılan yerel ayarınız Amerikan İngilizcesi ise:

        unqualifiedResLocale=en-US
        

AGP, bu varsayılan yerel ayarı ve res klasöründeki values-* dizinlerini kullanarak belirttiğiniz tüm alternatif yerel ayarları otomatik oluşturulan LocaleConfig dosyasına ekler.

Uygulama başına otomatik dil desteği varsayılan olarak kapalıdır. Bu özelliği açmak için modül düzeyindeki build.gradle.kts dosyasının androidResources {} bloğundaki generateLocaleConfig ayarını kullanın (Groovy kullanıyorsanız build.gradle dosyası):

Kotlin

android {
  androidResources {
    generateLocaleConfig = true
  }
}

Modern

android {
  androidResources {
    generateLocaleConfig true
  }
}

Android Lint, JVM 17'yi hedefleyen bayt kodu içeriyor

AGP 8.1.0-alpha04 sürümünden itibaren Android Lint, JVM 17'yi hedefleyen bayt kodu içerir. Özel lint kontrolleri yazarsanız JDK 17 veya sonraki sürümlerle derleme yapmanız ve Kotlin derleyici seçeneklerinizde jvmTarget = '17' değerini belirtmeniz gerekir.

lint aracı hakkında daha fazla bilgi edinmek için Kodunuzu lint kontrolleriyle iyileştirme bölümüne bakın.

Yerel kitaplık sıkıştırma ayarı DSL'ye taşındı

AGP 8.1.0-alpha10 sürümünden itibaren, yerel kitaplık sıkıştırmayı manifest yerine DSL kullanarak yapılandırmazsanız bir uyarı alırsınız. Aşağıdaki kılavuzda, DSL'yi kullanmak için yapılandırmanızı nasıl güncelleyeceğiniz açıklanmaktadır. Bu güncellemeleri yaparken yardım almak için AGP Yükseltme Asistanı'nı (Araçlar > AGP Yükseltme Asistanı) kullanın.

Sıkıştırılmamış yerel kitaplıkları kullanmak için manifest dosyasından android::extractNativeLibs özelliğini kaldırın ve modül düzeyindeki build.gradle.kts dosyasına aşağıdaki kodu ekleyin (Groovy kullanıyorsanız build.gradle dosyası):

Kotlin

android {
  packagingOptions {
    jniLibs {
      useLegacyPackaging = false
    }
  }
}

Modern

android {
  packagingOptions {
    jniLibs {
      useLegacyPackaging false
    }
  }
}

Deneysel derleme işaretleri

Bunlar, derlemenizi AGP 8.1'de kullanılabilir olacak şekilde yapılandırmak için kullanılan deneysel işaretlerdir.

İşaretle Eklendiği yer Varsayılan değer Notlar
android.experimental.useDefaultDebugSigningConfigForProfileableBuildtypes AGP 8.0 false İmzalama yapılandırması belirtilmeden bu özelliğin etkinleştirilmesi, profilli veya hata ayıklaması yapılabilir bir derleme çalıştırırken AGP'nin varsayılan hata ayıklama imzalama yapılandırmasını kullanmasına neden olur. Derleme yazarlarını belirli profil imzalama yapılandırmalarını bildirmeye teşvik etmek için bu işaret varsayılan olarak devre dışıdır.
android.experimental.library.desugarAndroidTest AGP 8.0 false Bu işaret, kitaplık oluşturucuların, oluşturulan AAR'yi etkilemeden (ör. hata analizi aracılığıyla) test APK'ları için temel kitaplık şekeri gidermeyi etkinleştirmesine olanak tanır. Gelecekte bu davranışı Variant API'de desteklemeyi planlıyoruz.
android.experimental.testOptions.managedDevices.customDevice AGP 8.0 false Bu ayar etkinleştirilirse Gradle Yönetilen Cihazlar, bir eklenti tarafından sağlanabilen kullanıcı tanımlı özel cihaz türüne izin verir. Firebase Test Lab eklentisini kullanmak istiyorsanız bu işareti etkinleştirmelisiniz.
android.lint.printStackTrace AGP 8.0 false Etkinleştirilirse Android lint, kilitlenirse bir yığın izleme yazdırır. Bu işaret, LINT_PRINT_STACKTRACE ortam değişkeniyle aynı özelliklere sahiptir.
android.experimental.testOptions.managedDevices.maxConcurrentDevices AGP 8.0 Yok Herhangi bir zamanda etkin olacak maksimum eşzamanlı Gradle Yönetilen Cihaz (AVD) sayısını belirtir. Değer 0 veya negatifse maksimum cihaz sayısı yoktur.
android.experimental.testOptions.installApkTimeout AGP 8.0 Yok Bir APK'nın yüklenmesi için gereken zaman aşımı süresi (saniye cinsinden). Değer 0 veya negatif ise UTP tarafından varsayılan bir değere ayarlanır.