Android Gradle eklentisi 8.0.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ı | 30.0.3 | 30.0.3 | 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. |
Yama sürümleri
Aşağıda Android Gradle Plugin 8.0 için yama sürümlerinin bir listesi bulunmaktadır.
Android Gradle Eklentisi 8.0.2 (Mayıs 2023)
AGP 8.0.2'de düzeltilen hataların listesi için Android Studio 2022.2.1'de kapatılan sorunlar sayfasına bakın.
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 | |
---|---|
AGP 7.2.2 -> 7.4.0 sürümüne geçtikten sonra Hata: "Tabloda belirtilen kimliğe sahip Sürüm Gereksinimi Yok"
|
|
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üzeyindeki derleme komut dosyasında ad alanı gerekli
Ad alanını, manifest dosyası yerine modül düzeyindeki build.gradle.kts
dosyasında ayarlamanız gerekir. AGP 7.3'ten itibaren namespace
DSL özelliğini kullanmaya başlayabilirsiniz. Daha fazla bilgi edinmek için Ad alanı belirleme bölümünü inceleyin.
DSL ad alanına geçiş yaparken aşağıdaki sorunlara dikkat edin:
- AGP'nin önceki sürümleri, ana ad alanından veya uygulama kimliğinden bazı durumlarda yanlış bir şekilde test ad alanını tahmin eder. AGP Yükseltme Asistanı, projenizin ana ad alanı ile test ad alanının aynı olduğunu tespit ederse yükseltme işlemini engeller. Yükseltme engellendiyse manuel olarak
testNamespace
değiştirmeniz ve kaynak kodunuzu buna göre değiştirmeniz gerekir. - Test ad alanını değiştirdikten sonra kodunuz derlenebilir ancak araç kullanılan testleriniz çalışma zamanında başarısız olabilir. Araçlı test kaynak kodunuz hem
androidTest
hem de uygulama kaynaklarınızda tanımlı bir kaynağa referans veriyorsa bu durum meydana gelebilir.
Daha fazla bilgi için 191813691 numaralı yoruma bakın.
Zarar veren değişiklikler: Derleme seçeneği varsayılan değerleri
AGP 8.0'dan itibaren, derleme performansını iyileştirmek için bu işaretlerin varsayılan değerleri değiştirildi. Bu değişikliklerden bazılarını destekleyecek şekilde kodunuzu ayarlama konusunda yardım almak için AGP Yükseltme Asistanı'nı (Araçlar > AGP Yükseltme Asistanı) kullanın. Yükseltme Asistanı, yeni davranışa uyum sağlamak için kodunuzu güncelleme veya önceki davranışı korumak için işaretleri 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 olan projelerde DSL'yi kullanarak bu seçeneği belirtmeniz gerekir. |
android.defaults.buildfeatures.aidl |
false |
true |
AGP 8.0, AIDL desteğini varsayılan olarak etkinleştirmez. İhtiyacınız olan projelerde DSL'yi kullanarak bu seçeneği belirtmeniz gerekir. AGP 9.0'da bu işaretin kaldırılması planlanmaktadır. |
android.defaults.buildfeatures.renderscript |
false |
true |
AGP 8.0, RenderScript desteğini varsayılan olarak etkinleştirmez. İhtiyacınız olan projelerde DSL'yi kullanarak bu seçeneği belirtmeniz gerekir. AGP 9.0'da bu işaretin 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 yalnızca mevcut modülde tanımlanan kaynaklar için R sınıfları oluşturur. |
android.enableR8.fullMode |
true |
false |
AGP 8.0 varsayılan olarak R8 tam modunu etkinleştirir. Daha fazla bilgi için R8 tam mod bölümüne göz atın. |
Zarar veren değişiklikler: Zorunlu kılınan derleme seçeneği değerleri
AGP 8.0'dan başlayarak, bu işaretlerin değerlerini değiştiremezsiniz. Bunları gradle.properties
dosyasında belirtirseniz değer yoksayılır ve AGP uyarı 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 etkilediği için yapılandırma aşamasında yapılandırma çözünürlüğü tespit ederse uyarı verir. |
android.r8.failOnMissingClasses |
true |
AGP 8.0, daha iyi DEX optimizasyonu sağlamak için eksik sınıflar varsa R8 kullanan derlemelerde başarısız olur. Bu sorunu gidermek için eksik kitaplıkları veya -dontwarn Keep kurallarını eklemeniz gerekir. Daha fazla bilgi için R8 küçültücüde eksik sınıf uyarıları bölümüne bakın. |
android.testConfig.useRelativePath |
true |
Birim testlerinde Android kaynakları, öğeleri ve manifestleri kullanma 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 derleme önbelleğini kullanabilmesini sağlar. |
android.useNewJarCreator |
true |
AGP, derleme performansını iyileştirmek için JAR dosyaları oluştururken Zipflinger kitaplığını kullanır. |
android.bundletool.includeRepositoriesInDependencyReport |
true |
AAB'lerde ve APK'larda SDK bağımlılık bilgileri ekleme etkinken AGP 8.0, bu bilgilere proje depolarının listesini de ekler. Daha fazla bilgiyi Play Console için bağımlılık bilgileri bölümünde bulabilirsiniz. |
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 değiştirici uygulamasını kullanın. Yeni kaynak küçültücü, dinamik özellikleri destekler. |
android.enableSourceSetPathsMap |
true |
Göreli kaynak yolu eşlemelerini hesaplamak için kullanılır. Böylece Gradle derlemeleri daha sık günceldir. |
android.cacheCompileLibResources |
true |
Gradle, kaynak dosyalarını proje konumuna göre izlediği için derlenen kitaplık kaynakları artık varsayılan olarak önbelleğe alınabilir. android.enableSourceSetPathsMap özelliğinin etkinleştirilmesini gerektirir. |
android.disableAutomaticComponentCreation |
true |
AGP 8.0 varsayılan olarak hiçbir SoftwareComponent oluşturmaz. Bunun yerine AGP, yalnızca yayınlama DSL'si kullanılarak yayınlanacak şekilde yapılandırılan varyantlar için SoftwareComponents oluşturur. |
Yürütme profili için yeni sabit işaret
AGP, android.settings.executionProfile
adlı yeni işareti içerir. SettingsExtension
öğesindeki varsayılan yürütme profilini geçersiz kılmak için bu işareti kullanın.
Daha fazla bilgi edinmek için ayarlar eklentisi dokümanlarına bakın.
Deneysel işaretleri önizlemek için önizleme sürüm notlarına bakın.
Kotlin geç özellik ataması desteklenmiyor
Derleme komut dosyalarınız için Gradle'ın Kotlin DSL'sini kullanıyorsanız Android Studio ve AGP 8.0'ın, =
operatörünü kullanan deneysel özellik atamasını desteklemediğini unutmayın. Bu özellik hakkında daha fazla bilgi için sürüm notlarına ve belgelere göz atın.
Analiz Aracı görev kategorileri oluşturma
Derleme Analiz Aracı, Android Studio Flamingo'dan başlayarak derleme süresini etkileyen görevler için yeni bir varsayılan görünüme sahiptir. Projenizde AGP 8.0 veya daha yeni bir sürüm kullanılıyorsa, Build Analiz Aracı görevleri ayrı ayrı görüntülemek yerine kategoriye göre gruplandırır. Örneğin, Android Kaynakları, Kotlin veya Dexing'e özgü görevler birlikte gruplandırılır ve derleme süresine göre sıralanır. Bu, derleme süresi üzerinde en fazla etkiye sahip olan kategorinin bulunmasını kolaylaştırır. Her bir kategoriyi genişlettiğinizde ilgili görevlerin bir listesi görüntülenir. Görevleri gruplandırmadan tek tek görüntülemek için Gruplandırma ölçütü açılır listesini kullanın.
Yeni ayarlar eklentisi
AGP 8.0.0-alpha09 yeni ayarlar eklentisini kullanıma sunuyor. Ayarlar eklentisi, genel yapılandırmaları (tüm modüller için geçerli olan yapılandırmalar) tek bir yerde toplamanıza olanak tanır. Böylece yapılandırmaları birden fazla modüle kopyalayıp yapıştırmanıza gerek kalmaz. Ek olarak, ayarlar eklentisini kullanarak araç yürütme profilleri veya bir aracın nasıl çalıştırılacağına ilişkin 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ı merkezileştirin
Genel yapılandırmaları yapılandırmak için settings.gradle
dosyasındaki yeni android
bloğunu kullanın. 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ışacağını belirler. Ortama bağlı olarak farklı yürütme profilleri seçebilirsiniz. Yürütme profilinde, bir araç için JVM bağımsız değişkenleri ayarlayabilir ve 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 settings.gradle
dosyasında yürütme profilleri oluşturun ve 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ındaki android.experimental.settings.executionProfile
özelliğini kullanarak farklı bir profil seçin:
android.experimental.settings.executionProfile=high
Bu özelliği, farklı iş akışları ayarlamanızı sağlayan 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'ı çalıştırmak için artık JDK 17 gerekiyor. Android Studio Flamingo, JDK 17'yi paketler ve Gradle'ı varsayılan olarak kullanacak şekilde yapılandırır. Böylece çoğu Android Studio kullanıcısının projelerinde herhangi bir yapılandırma değişikliği yapması gerekmez.
AGP tarafından kullanılan JDK sürümünü Android Studio içinde 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 JAVA_HOME
ortam değişkenini veya -Dorg.gradle.java.home
komut satırı seçeneğini ayarlayarak JDK sürümünü JDK 17 yükleme dizininize yükseltin.