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 için JDK sürümünü ayarlama başlıklı makaleyi inceleyin. |
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ı
|
Çalışmayı kesintiye uğratan değişiklik: Modül düzeyinde derleme komut dosyasında ad alanı gerekli
Ad alanını manifest dosyasından ziyade modül düzeyindeki build.gradle.kts
dosyasında ayarlamanız gerekir. namespace
DSL mülkünü kullanmaya başlayabilirsiniz
AGP 7.3 ile başlayın. Daha fazla bilgi edinmek için Ad alanı ayarlama başlıklı makaleyi inceleyin.
Ad alanı DSL'sine geçiş yaparken aşağıdaki sorunlara dikkat edin:
- AGP'nin önceki sürümleri, test ad alanını ana ad alanından veya uygulama kimliğinden bazı durumlarda yanlış çıkarır. AGP Yükseltme Asistanı, projenizin ana ad alanının ve test ad alanının aynı olduğunu tespit ederse yükseltmeyi engeller. 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, enstrümante edilmiş test kaynak kodunuz hem
androidTest
hem de uygulama kaynaklarınızda tanımlanan bir kaynağa referans veriyorsa ortaya çıkabilir.
Daha fazla bilgi için bkz. sorun #191813691 yorum 19.
Önemli 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ı, kodunuzu yeni davranışa uyacak şekilde güncelleme veya önceki davranışı korumak için işaretler ayarlama konusunda size yol gösterir.
İş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
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. Bu seçeneği, ihtiyaç duyduğunuz projelerde DSL'yi kullanarak belirtmeniz gerekir. Bu işaretin AGP 9.0 sürümünde kaldırılması planlanmaktadır. |
android.defaults.buildfeatures.renderscript |
false |
true |
AGP 8.0, RenderScript desteğini varsayılan olarak etkinleştirmez. Bu seçeneği, ihtiyaç duyduğunuz projelerde DSL'yi kullanarak belirtmeniz gerekir. Bu işaretin AGP 9.0 sürümünde kaldırılması planlanmaktadır. |
android.nonFinalResIds |
true |
false |
AGP 8.0, varsayılan olarak nihai olmayan alanlara sahip R sınıfları oluşturur. |
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'dan itibaren bu işaretlerin değerlerini değiştiremezsiniz. Bunları gradle.properties
dosyasında belirtirseniz değer yoksayılır ve AGP uyarılar yazdırır.
İşaretle | Zorunlu kılınan değer | Notlar |
---|---|---|
android.dependencyResolutionAtConfigurationTime.warn |
true |
AGP 8.0, Gradle yapılandırma sürelerini olumsuz yönde etkilediği için yapılandırma aşamasında yapılandırma çözünürlüğü algılarsa uyarı verir. |
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 fazla bilgi için R8 sıkıştırıcısında sınıf uyarıları eksik başlıklı makaleyi inceleyin. |
android.testConfig.useRelativePath |
true |
Birim testlerinde Android kaynaklarının, öğelerinin ve manifest dosyalarının kullanılması desteği etkinleştirildiğinde AGP 8.0 yalnızca göreli yollar içeren bir test_config.properties dosyası oluşturur. Bu, Android birim testlerinin her zaman Gradle'ı kullanabilmesini sağlar.
derler. |
android.useNewJarCreator |
true |
AGP, JAR dosyaları oluştururken derleme performansını iyileştirmek için Zipflinger kitaplığını kullanır. |
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 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 küçültme uygulamasını kullanın. 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 SoftwareComponent 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, yeni android.settings.executionProfile
işaretini içerir. SettingsExtension
kaynağındaki varsayılan yürütme profilini geçersiz kılmak için bu işareti kullanın.
Daha fazla bilgi için ayarlar eklentisi belgelerine göz atın.
Deneysel işaretleri önizlemek için önizleme sürüm notlarına bakın.
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 Derleme Analizörü, görevleri tek tek göstermek yerine kategoriye göre gruplandırır. Örneğin, Android Kaynakları, Kotlin veya Dexing'e özel görevler sonra derleme süresine göre sıralanır. Bu sayede, derleme süresini en çok etkileyen kategoriyi kolayca öğrenebilirsiniz. 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 kullanıma sunar. Ayarlar eklentisi, tüm modüller için geçerli olan genel yapılandırmaları tek bir yerde merkezileştirmenize olanak tanır. Böylece, yapılandırmaları birden fazla modüle kopyalayıp yapıştırmanız gerekmez. Ayrıca, ayarlar eklentisini kullanarak araç çalıştırma profilleri veya bir aracın nasıl çalıştırılacağına dair farklı talimatlar oluşturabilir ve bunlar 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ı merkezi hale getirin
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 aracı ayrı bir işlemde çalışacak şekilde yapılandırabilirsiniz. Şu anda yalnızca R8 aracı desteklenmektedir.
Aşağıdaki örnekte gösterildiği gibi, yürütme profilleri oluşturun ve settings.gradle
dosyasında varsayılan yürütme profilini ayarlayın:
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 gradle.properties
dosyasında android.experimental.settings.executionProfile
mülkünü kullanarak farklı bir profil seçin:
android.experimental.settings.executionProfile=high
Bu özelliği, farklı iş akışları oluşturmanıza olanak tanıyan komut satırını kullanarak da ayarlayabilirsiniz. Örneğin, sürekli entegrasyon iş akışınız varsa settings.gradle
dosyasını değiştirmek zorunda kalmadan yürütme profilini değiştirmek için komut satırını kullanabilirsiniz:
./gradlew assembleRelease \
-Pandroid.experimental.settings.executionProfile=ci
AGP 8.0'ı çalıştırmak için JDK 17 gerekir
Uygulamanızı derlemek için Android Gradle Plugin 8.0'ı kullanırken Gradle'i çalıştırmak için artık JDK 17 gereklidir. Android Studio Flamingo, JDK 17'yi paketler ve Gradle'i varsayılan olarak kullanacak şekilde yapılandırır. Bu sayede çoğu Android Studio kullanıcısının projelerinde yapılandırma değişikliği yapması gerekmez.
Android Studio'da AGP tarafından kullanılan JDK sürümünü manuel olarak ayarlamanız gerekiyorsa 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.
Çözülen sorunlar
Android Gradle eklentisi 8.0.0
Çözülen Sorunlar | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Android Gradle eklentisi |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Dexer (D8) |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lint |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lint Entegrasyonu |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Küçültücü (R8) |
|
Android Gradle eklentisi 8.0.1
Çözülen Sorunlar | ||||
---|---|---|---|---|
Küçültücü (R8) |
|
Android Gradle eklentisi 8.0.2
Çözülen Sorunlar | |||||
---|---|---|---|---|---|
Shrinker (R8) |
|