Android Gradle eklentisi 8.1.0, yeni ve özellikleri ve iyileştirmeleri.
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 sayfasına göz atın. |
SDK Derleme Araçları | 33.0.1 | 33.0.1 | SDK Derleme Araçları'nı yükleyin veya yapılandırın. |
NDK | Yok | 25.1.8937393. | NDK'nın farklı bir sürümünü 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 değerdir
Yeni projelerde artık derleme için varsayılan olarak Kotlin DSL (build.gradle.kts
) kullanılıyor
yapılandırma. Bu, Groovy DSL'den daha iyi bir düzenleme deneyimi sunar
(build.gradle
) söz dizimi vurgulama, kod tamamlama ve gezinme ile
beyanları. Derleme için AGP 8.1 ve Kotlin DSL kullanıyorsanız
en iyi deneyim için Gradle 8.1'i kullanmalısınız. Daha fazla bilgi edinmek için
Kotlin DSL taşıma rehberini inceleyin.
Uygulama başına otomatik dil desteği
Android Studio Giraffe Canary 7 ve AGP 8.1.0-alpha07 sürümünden itibaren
uygulamanızı uygulamaya özgü dili destekleyecek şekilde yapılandırın
otomatik olarak oluşturabilirsiniz. Size dayalı olarak
proje kaynaklarını yüklemek istemiyorsanız Android Gradle eklentisi LocaleConfig
dosyasını oluşturur.
ve nihai manifest dosyasına bir referans ekler. Böylece,
manuel olarak yapın. AGP, uygulama modüllerinizin res
klasörlerinde bulunan kaynakları kullanır
ve kitaplık modülü bağımlılıklarını kullanarak projeye dahil edilecek yerel ayarları
LocaleConfig
dosya
Uygulama başına otomatik dil özelliğinin, Android çalıştıran uygulamaları desteklediğini unutmayın.
13 (API düzeyi 33) veya sonraki sürümler. Bu özelliği kullanmak için şunları ayarlamanız gerekir:
compileSdkVersion
- 33 yaş veya üzeri. Uygulamaya özgü dil tercihlerini yapılandırmak için
Android'in önceki sürümlerinde de
API'leri ve uygulama içi dil seçicileri kullanın.
Uygulama başına otomatik dil desteğini etkinleştirmek için varsayılan bir yerel ayar belirtin:
- Uygulama modülünün
res
klasöründe,resources.properties
. resources.properties
dosyasında varsayılan yerel ayarıunqualifiedResLocale
etiketi. Yerel ayar adlarını oluşturmak için dil kodunu, isteğe bağlı alfabe ve bölge kodlarıyla birlikte kullanarak her birini tireyle:- Dil: İki veya üç harf kullanın ISO 639-1 girin.
- Komut dosyası (isteğe bağlı): ISO 15924 kodunu gönderin.
- Bölge (isteğe bağlı): İki harfli ISO 3166-1-alpha-2 kod veya üç haneli UN_M.49 girin.
Örneğin, varsayılan yerel ayarınız Amerikan İngilizcesi ise:
unqualifiedResLocale=en-US
AGP, bu varsayılan yerel ayarı ve
alternatif yerel ayarlar
res
klasöründeki values-*
dizinlerini kullanarak belirttiğiniz
LocaleConfig
dosyası otomatik olarak oluşturuldu.
Uygulamaya özgü otomatik dil desteği varsayılan olarak kapalıdır. Özelliği etkinleştirmek için
androidResources {}
bloğunda generateLocaleConfig
ayarını kullanın
modül düzeyinde build.gradle.kts
dosyası (kullanıyorsanız build.gradle
dosyası kullanıyorsanız)
Groovy):
Kotlin
android { androidResources { generateLocaleConfig = true } }
Eski
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'yi hedefleyen bayt kodu içerir.
17. Özel lint kontrolleri yazıyorsanız JDK 17 veya sonraki bir sürümle derlemeniz gerekir.
ve Kotlin derleyici seçeneklerinizde jvmTarget = '17'
değerini belirtin.
Hata analizi aracı hakkında daha fazla bilgi edinmek için Kodunuzu lint kontrolleriyle iyileştirin.
Yerel kitaplık sıkıştırma ayarı DSL'ye taşındı
AGP 8.1.0-alpha10 sürümünden itibaren yapılandırma yapmazsanız bir uyarı alacaksınız manifest yerine DSL kullanarak yerel kitaplık sıkıştırmanızı sağlar. İlgili içeriği oluşturmak için kullanılan aşağıdaki kılavuzda, DSL'yi kullanacak şekilde yapılandırmanızı nasıl güncelleyebileceğiniz açıklanmaktadır. Alıcı: bu güncellemeleri yapma konusunda yardım almak için AGP Yükseltme Asistanını kullanın (Araçlar > AGP Yükseltme Asistanı).
Sıkıştırılmamış yerel kitaplıkları kullanmak için android::extractNativeLibs
uzantısını kaldırın
özelliğini manifest'ten çıkarıp aşağıdaki kodu modül düzeyine ekleyin:
build.gradle.kts
dosyası (Groovy kullanıyorsanız build.gradle
dosya):
Kotlin
android { packagingOptions { jniLibs { useLegacyPackaging = false } } }
Eski
android { packagingOptions { jniLibs { useLegacyPackaging false } } }
Deneysel derleme işaretleri
Bunlar, AGP 8.1'de derlemenizi yapılandırmaya yönelik deneysel işaretlerdir.
İşaretle | Eklendiği yer | Varsayılan değer | Notlar |
---|---|---|---|
android.experimental.useDefaultDebugSigningConfigForProfileableBuildtypes |
AGP 8.0 | false |
Bunu imzalama yapılandırması belirtilmeden etkinleştirmek AGP'nin profili veya hata ayıklaması yapılabilir bir dosya çalıştırırken varsayılan hata ayıklama imzalama yapılandırması seçeceğiz. Bu işaret, yazarları derlemeyi teşvik etmek için varsayılan olarak devre dışıdır: özel profil imzalama yapılandırmaları beyan eder. |
android.experimental.library.desugarAndroidTest |
AGP 8.0 | false |
Bu işaret, kitaplık oluşturucularının oluşturulan AAR'yi etkilemeden (ör. hata analizi yoluyla) APK'ları test edebilir. Bu davranışı zaman içinde Variant API'de desteklemeyi planlıyoruz. |
android.experimental.testOptions.managedDevices.customDevice |
AGP 8.0 | false |
Gradle Yönetilen Cihazlar, etkinleştirilirse kullanıcı tanımlı özel cihazlara izin verir türünden emin olun. Aşağıdaki durumlarda bu işaretin etkinleştirilmiş olması gerekir: Firebase Test Lab eklentisini kullanmak istiyorsunuz. |
android.lint.printStackTrace |
AGP 8.0 | false |
Etkinleştirildiğinde, Android lint, kilitlenmesi durumunda bir yığın izleme (stack trace) yazdırır. Bu işaret
LINT_PRINT_STACKTRACE ile aynı özelliklere sahiptir
ortam değişkeni |
android.experimental.testOptions.managedDevices.maxConcurrentDevices |
AGP 8.0 | Yok | Gradle Tarafından Yönetilen Cihazların maksimum sayısını belirtir (AVD) herhangi bir zamanda etkin olmalıdır. Değer 0 veya negatif olursa maksimum cihaz sayısı yoktur. |
android.experimental.testOptions.installApkTimeout |
AGP 8.0 | Yok | Bir APK'yı yüklemek için saniye cinsinden zaman aşımı süresi. Değer 0 ise veya negatif olursa UTP tarafından varsayılan bir değere ayarlanır. |