Android Gradle eklentisi 8.0.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ı | 30.0.3 | 30.0.3 | 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. |
Yama sürümleri
Aşağıda, Android Gradle eklentisi için yama sürümlerinin listesi verilmiştir 8.0.
Android Gradle Eklentisi 8.0.2 (Mayıs 2023)
AGP 8.0.2'de düzeltilen hataların listesi için bkz. Android Studio 2022.2.1 sorunları kapatıldı.
Android Gradle Eklentisi 8.0.1 (Mayıs 2023)
Bu küçük güncelleme aşağıdaki hata düzeltmelerini içerir:
Düzeltilen sorunlar | |
---|---|
Hata: "Tabloda belirtilen kimliğe sahip Versiongereksinim yok" AGP 7.2.2 sürümüne geçtikten sonra -> 7.4.0
|
|
MarkTypeAsLive AGP 7.4.1'de R8 NullPointerException
|
|
[R8 4.0.53] Android 11'de sabit sınıf doğrulama hatası
|
Önemli değişiklik: Modül düzeyinde derleme komut dosyasında ad alanı gerekli
Bunun yerine, ad alanını modül düzeyindeki build.gradle.kts
dosyasında
manifest dosyasından farklı bir dosya görürsünüz. namespace
DSL mülkünü kullanmaya başlayabilirsiniz
AGP 7.3 ile başlayın. Daha fazla bilgi edinmek için bkz.
Ad alanı ayarlayın.
Ad alanı DSL'sine taşıma işlemi yaparken aşağıdaki sorunlara dikkat edin:
- AGP'nin önceki sürümleri, test ad alanını ana ad alanından belirler veya
bazı durumlarda yanlış şekilde ayarlayabilirsiniz. AGP Yükseltme Asistanı,
projenizin ana ad alanının ve test ad alanının
aynıdır. Yükseltme engellenmişse
testNamespace
öğesini manuel olarak değiştirmeniz gerekir ve kaynak kodunuzu buna göre değiştirin. - Test ad alanını değiştirdikten sonra kodunuz,
Ancak araçlı testleriniz çalışma zamanında başarısız olur. Bu durum,
araçlı test kaynak kodu, hem
androidTest
ve uygulama kaynakları.
Daha fazla bilgi için bkz. sorun #191813691 yorum 19.
Zarar veren değişiklikler: Derleme seçeneği varsayılan değerleri
AGP 8.0 sürümünden itibaren, bu flag'lerin varsayılan değerleri geliştirmenizi sağlar. Kodunuzu AGP Yükseltme Asistanı'nı kullanın. (Araçlar > AGP Yükseltme Asistanı). Yükseltme Asistanı size rehberlik eder yeni davranışı içerecek şekilde kodunuzu güncellemek veya yardımcı olabilir.
İşaretle | Yeni varsayılan değer | Önceki varsayılan değer | Notlar |
---|---|---|---|
android.defaults.buildfeatures.buildconfig |
false |
true |
AGP 8.0, varsayılan olarak BuildConfig oluşturmaz. İhtiyacınız olanlar
kullanarak bu seçeneği, ihtiyaç duyduğunuz projelerde DSL'yi kullanarak belirtebilirsiniz. |
android.defaults.buildfeatures.aidl |
false |
true |
AGP 8.0, AIDL desteğini varsayılan olarak etkinleştirmez. Şunları belirtmeniz gerekiyor: bu seçeneği, ihtiyaç duyduğunuz projelerde DSL kullanarak yapabilirsiniz. Bu bayrak AGP 9.0'da kaldırılması planlanmıştır. |
android.defaults.buildfeatures.renderscript |
false |
true |
AGP 8.0, RenderScript desteğini varsayılan olarak etkinleştirmez. Şunları yapmanız gerekir: bu seçeneği, ihtiyacınız olan projelerde DSL'yi kullanarak belirtebilirsiniz. Bu işaretinin AGP 9.0'da kaldırılması planlanmaktadır. |
android.nonFinalResIds |
true |
false |
AGP 8.0, aşağıdaki gibi nihai olmayan alanlara sahip R sınıf oluşturur:
varsayılandır. |
android.nonTransitiveRClass |
true |
false |
AGP 8.0, şurada tanımlanan kaynaklar için R sınıf oluşturur:
yalnızca geçerli modül. |
android.enableR8.fullMode |
true |
false |
AGP 8.0, varsayılan olarak R8 tam modunu etkinleştirir. Daha fazla bilgi için bkz. R8 tam modu. |
Zarar veren değişiklikler: zorunlu kılınan derleme seçeneği değerleri
AGP 8.0 sürümünden itibaren, bu işaretlerin değerlerini artık değiştiremezsiniz. Eğer
bunları gradle.properties
dosyasında belirtirseniz değer yoksayılır ve AGP
baskı uyarılarını açın.
İşaretle | Zorunlu kılınan değer | Notlar |
---|---|---|
android.dependencyResolutionAtConfigurationTime.warn |
true |
AGP 8.0, tarama sırasında yapılandırma çözünürlüğü tespit ederse uyarı gönderir. Gradle yapılandırmasını olumsuz etkileyeceğinden yapılandırma aşamasında kez. |
android.r8.failOnMissingClasses |
true |
AGP 8.0, başarısız olan derlemelerde R8 kullanan derlemelerde
daha iyi DEX optimizasyonu sağlar. Bu sorunu gidermek için
eksik kitaplıklar veya -dontwarn saklama kuralları. Daha ayrıntılı bilgi için
bkz.
R8 daraltıcıda eksik sınıf uyarıları. |
android.testConfig.useRelativePath |
true |
Android kaynaklarını, öğelerini ve manifest'lerini
birim testleri etkinleştirildiğinde, AGP 8.0 bir
Yalnızca göreli içeren test_config.properties dosyası
yollar. Bu, Android birim testlerinin her zaman Gradle'ı kullanabilmesini sağlar.
derler. |
android.useNewJarCreator |
true |
AGP, JAR dosyalarını oluştururken Zipflinger kitaplığını kullanarak geliştirmenizi sağlar. |
android.bundletool.includeRepositoriesInDependencyReport |
true |
AAB'lere ve APK'lara SDK bağımlılık bilgileri ekleme özelliği etkinleştirildiğinde AGP 8.0, bu bilgilere proje depolarının bir listesini de ekler. Alıcı: daha fazla bilgi için Play Console için bağımlılık bilgileri. |
android.enableArtProfiles |
true |
Temel profiller artık her zaman oluşturuluyor. Ayrıntılar için Temel profiller bölümüne bakın. |
android.enableNewResourceShrinker |
true |
Varsayılan olarak yeni kaynak shinker uygulamasını kullan. Yeni kaynak daraltıcı, dinamik özellikler için destek içerir. |
android.enableSourceSetPathsMap |
true |
Göreceli kaynak yolu eşlemelerini hesaplamak için kullanılır. Bu nedenle Gradle, güncel bilgiler sağlar. |
android.cacheCompileLibResources |
true |
Gradle, derlenen kitaplık kaynakları artık varsayılan olarak önbelleğe alınabilir
kaynak dosyalarını proje konumuna göre takip eder. Gereken
android.enableSourceSetPathsMap etkinleştirilecek. |
android.disableAutomaticComponentCreation |
true |
AGP 8.0, varsayılan olarak hiçbir SoftwareBileşeni oluşturmaz. Bunun yerine AGP Yalnızca yayınlanmak üzere yapılandırılmış varyantlar için yazılım bileşenleri yayınlama DSL'sini kullanır. |
Yürütme profili için yeni kararlı işaret
AGP'de yeni android.settings.executionProfile
işareti bulunmaktadır. Bu işareti şunlar için kullanın:
varsayılan yürütme profilini
SettingsExtension
.
Daha fazla bilgi edinmek için ayar eklentisi dokümanlarına bakın.
Deneysel işaretleri önizlemek için şuraya bakın: sürüm notlarını önizleyin.
Kotlin geç özelliği ataması desteklenmiyor
Derleme komut dosyalarınızda Gradle'ın Kotlin DSL'sini kullanıyorsanız Android'in
Studio ve AGP 8.0,
=
operatörü. Bu özellik hakkında daha fazla bilgi için
sürüm notları
ve
belgeleri inceleyin.
Derleme Analiz Aracı görev kategorileri
Android Studio Flamingo'dan başlayarak Build Analiz Aracı'nın iki temel görevi göz önünde bulundurmaktır. Projenizde AGP 8.0 veya sonraki bir sürüm kullanılıyorsa Görevleri tek tek görüntülemek yerine, Build Analyzer'ın bu görevleri seçin. Örneğin, Android Kaynakları, Kotlin veya Dexing'e özel görevler sonra derleme süresine göre sıralanır. Böylece projenizin durumu hangi kategorinin derleme süresi üzerinde en fazla etkiye sahip olduğunu öğrenin. Her bir kategoriyi genişletme görev listesi görüntülenir. Görevleri tek tek görüntülemek için: gruplandırma olmadan ise Gruplandırma ölçütü açılır menüsünü kullanın.
Yeni ayarlar eklentisi
AGP 8.0.0-alpha09, yeni ayarlar eklentisini sunar. Ayarlar eklentisi, tüm modüller için geçerli olan yapılandırmaları içeren genel yapılandırmalarda tek bir yerde saklamanızı öneririz. Böylece, yapılandırmaları birden çok modüllerinde yer alır. Ek olarak, Veriye Dayalı İlişkilendirme Aracı'nı oluşturmak için ayarlar eklentisini yürütme profilleri veya bir aracın çalıştırılmasına ilişkin farklı talimatlar ve arasında geçiş yapabilirsiniz.
Ayarlar eklentisini kullanmak için eklentiyi settings.gradle
dosyasına uygulayın:
apply plugin 'com.android.settings'
Genel yapılandırmaları merkezileştirme
Genel yapılandırmaları yapılandırmak için şuradaki yeni android
bloğunu kullanın:
settings.gradle
dosya Aşağıda bununla ilgili bir örnek verilmiştir:
android {
compileSdk 31
minSdk 28
...
}
Araç yürütme profilleri
Ayarlar eklentisi, bazı araçlar için yürütme profilleri oluşturmanıza da olanak tanır. yürütme profili bir aracın nasıl çalıştırılacağını belirler. farklı içerik seçeneklerini yürütme profillerine göz atın. Yürütme profilinde bir araç için JVM bağımsız değişkenlerini ayarlayabilir ve onu ayrı bir işlemde çalışacak şekilde yapılandırabilirsiniz. Şu an için yalnızca R8 aracı desteklenir.
Yürütme profilleri oluşturun ve
settings.gradle
dosyası yükleyin:
android {
execution {
profiles {
high {
r8 {
jvmOptions += ["-Xms2048m", "-Xmx8192m", "-XX:+HeapDumpOnOutOfMemoryError"]
runInSeparateProcess true
}
}
low {
r8 {
jvmOptions += ["-Xms256m", "-Xmx2048m", "-XX:+HeapDumpOnOutOfMemoryError"]
runInSeparateProcess true
}
}
ci {
r8.runInSeparateProcess false
}
}
defaultProfile "low"
}
}
Varsayılan profili geçersiz kılmak için
android.experimental.settings.executionProfile
mülk
gradle.properties
dosyası:
android.experimental.settings.executionProfile=high
Bu özelliği, komut satırını kullanarak da ayarlayabilirsiniz. Komut satırını kullanarak
farklı iş akışları oluşturabilirsiniz. Örneğin, sürekli entegrasyon iş akışınız varsa
komut satırını kullanarak, bu işlemi yapmak zorunda kalmadan yürütme
settings.gradle
dosyasını değiştirin:
./gradlew assembleRelease \
-Pandroid.experimental.settings.executionProfile=ci
AGP 8.0'ı çalıştırmak için JDK 17 gerekir
Uygulamanızı geliştirmek için Android Gradle Plugin 8.0 kullanıyorsanız artık JDK 17 gerekir. bir araya geleceksiniz. Android Studio Flamingo, JDK 17'yi paketler ve Gradle'ı varsayılan olarak kullandığından çoğu Android Studio kullanıcısının değişiklik yapmadığını fark ettim.
JDK sürümünü manuel olarak ayarlamanız gerekiyorsa AGP tarafından Android Studio içinde kullanılıyorsa JDK 17 veya sonraki bir sürümü kullanmanız gerekir.
Android Studio'dan bağımsız AGP kullanırken JDK sürümünü
JAVA_HOME
ayarlanıyor
ortam değişkeni
veya -Dorg.gradle.java.home
komut satırı seçeneği
JDK 17'nin yükleme dizinine ekleyebilirsiniz.