Bu sayfada, Android Gradle eklentisinin (AGP) önizleme sürümlerine ait sürüm notları yer almaktadır.
Android Gradle eklentisi 9.0
Android Gradle eklentisi 9.0, AGP'nin yeni bir ana sürümüdür ve API ile davranış değişiklikleri içerir.
Android Gradle eklentisi 9.0.0-beta04 sürümüne güncellemek için Android Studio Otter 3 Feature Drop | 2025.2.3 sürümündeki Android Gradle eklentisi Yükseltme Asistanı'nı kullanın.
AGP yükseltme asistanı, projenizi yükseltirken uygun olduğunda mevcut davranışları korumanıza yardımcı olur. Bu sayede, AGP 9.0'daki tüm yeni varsayılanları kullanmaya hazır olmasanız bile projenizi AGP 9.0'ı kullanacak şekilde yükseltebilirsiniz.
Uyumluluk
Android Gradle eklentisi 9.0.0-beta04'ün desteklediği maksimum Android API düzeyi, API düzeyi 36'dır.
Android Gradle eklentisi 9.0.0-beta04 için Gradle 9.0.0 gerekir.
| Minimum sürüm | Varsayılan sürüm | Notlar | |
|---|---|---|---|
| Gradle | 9.1.0 | 9.1.0 | Daha fazla bilgi edinmek için Gradle'ı güncelleme başlıklı makaleyi inceleyin. |
| SDK Derleme Araçları | 36.0.0 | 36.0.0 | SDK Derleme Araçları'nı yükleyin veya yapılandırın. |
| NDK | Yok | 28.2.13676358 | 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 konusuna bakın. |
android DSL sınıfları artık yalnızca yeni herkese açık arayüzleri uyguluyor
Son birkaç yıldır, hangi API'lerin herkese açık olduğunu daha iyi kontrol etmek için DSL ve API'miz için yeni arayüzler kullanıma sunduk. AGP'nin 7.x ve 8.x sürümlerinde, arayüzlerdeki çalışmalar devam ederken uyumluluğu korumak için yeni herkese açık arayüzleri de uygulayan eski DSL türleri (ör. BaseExtension) kullanılıyordu.
AGP 9.0 yalnızca yeni DSL arayüzlerimizi kullanır ve uygulamalar tamamen gizlenmiş yeni türlere dönüştürülmüştür. Bu işlem, eski ve kullanımdan kaldırılmış varyant API'sine erişimi de kaldırır.
AGP 9.0'a güncellemek için aşağıdakileri yapmanız gerekebilir:
- Projenizin yerleşik
Kotlin ile uyumlu olduğundan emin olun:
org.jetbrains.kotlin.androideklentisi, yeni DSL ile uyumlu değildir. KMP projelerini KMP için Android Gradle kitaplık eklentisine geçirme:
org.jetbrains.kotlin.multiplatformeklentisinincom.android.libraryvecom.android.applicationeklentileriyle aynı Gradle alt projesinde kullanılması yeni DSL ile uyumlu değildir.Derleme dosyalarınızı güncelleyin: Arayüzlerin değiştirilmesi, DSL'nin mümkün olduğunca benzer kalmasını sağlamayı amaçlasa da bazı küçük değişiklikler olabilir.
Özel derleme mantığınızı yeni DSL ve API'ye referans verecek şekilde güncelleyin: Dahili DSL'ye yapılan tüm referansları herkese açık DSL arayüzleriyle değiştirin. Çoğu durumda bu, bire bir değiştirme olacaktır.
applicationVariantsve benzeri API'lerin tüm kullanımlarını yeniandroidComponentsAPI ile değiştirin.androidComponentsAPI'si, eklentilerin daha uzun süre uyumlu kalması için daha kararlı olacak şekilde tasarlandığından bu işlem daha karmaşık olabilir. Örnekler için Gradle Tarifleri'ne göz atın.Üçüncü taraf eklentilerini güncelleyin: Bazı üçüncü taraf eklentileri, artık kullanılmayan arayüzlere veya API'lere bağlı olabilir. Bu eklentilerin AGP 9.0 ile uyumlu sürümlerine geçin.
Yeni DSL arayüzlerine geçiş, aşağıdakiler de dahil olmak üzere çeşitli kullanımdan kaldırılmış API'leri kullanan eklentilerin ve Gradle derleme komut dosyalarının çalışmasını engeller:
android bloğunda kullanımdan kaldırılmış API |
İşlev | Değiştirme |
|---|---|---|
applicationVariants,libraryVariants,testVariants veunitTestVariants
|
Eklentilerin AGP'ye yeni işlevler eklemesi için uzantı noktaları. |
Bunu androidComponents.onVariants API ile değiştirin. Örneğin:
androidComponents { onVariants() { variant -> variant.signingConfig .enableV1Signing.set(false) } } |
variantFilter
|
Seçilen varyantların devre dışı bırakılmasına olanak tanır. |
Bunu androidComponents.beforeVariants API ile değiştirin. Örneğin:
androidComponents { beforeVariants( selector() .withBuildType("debug") .withFlavor("color", "blue") ) { variantBuilder -> variantBuilder.enable = false } } |
deviceProvider vetestServer
|
Android cihazlar ve emülatörlerde test çalıştırmak için özel test ortamlarının kaydı. | Gradle tarafından yönetilen cihazlara geçin. |
sdkDirectory,ndkDirectory,bootClasspath,adbExecutable veadbExe
|
Özel görevler için Android SDK'nın çeşitli bileşenlerini kullanma. |
androidComponents.sdkComponents planına geçin.
|
registerArtifactType,registerBuildTypeSourceProvider,registerProductFlavorSourceProvider,registerJavaArtifact,registerMultiFlavorSourceProvider vewrapJavaSourceSet |
Çoğunlukla Android Studio'da oluşturulan kaynakların işlenmesiyle ilgili olan ve AGP 7.2.0'da çalışmayı durduran işlevler. | Bu API'lerin doğrudan bir alternatifi yoktur. |
dexOptions
|
dx aracının yerini alan d8 ile ilgili eski ayarlar. Android Gradle eklentisi 7.0'dan beri bu ayarların hiçbir etkisi olmamıştır.
|
Doğrudan bir alternatifi yoktur. |
generatePureSplits
|
Hazır uygulamalar için yapılandırma bölmeleri oluşturun. | Yapılandırma bölmelerini gönderme özelliği artık Android uygulama paketlerine yerleştirilmiştir. |
aidlPackagedList
|
Kitaplıklar ve bu kitaplığa bağlı uygulamalar için API olarak kullanıma sunmak üzere AAR'ye paketlenecek AIDL dosyaları. |
Bu, LibraryExtension'da hâlâ kullanıma sunulmaktadır ancak diğer uzantı türlerinde kullanıma sunulmamaktadır.
|
AGP 9.0'a güncelleyip aşağıdaki hata mesajını görürseniz projeniz hâlâ eski türlerden bazılarına referans veriyor demektir:
java.lang.ClassCastException: class com.android.build.gradle.internal.dsl.ApplicationExtensionImpl$AgpDecorated_Decorated
cannot be cast to class com.android.build.gradle.BaseExtension
Uyumsuz üçüncü taraf eklentileri tarafından engelleniyorsanız DSL için eski uygulamaları ve eski varyant API'sini geri almak üzere devre dışı bırakabilirsiniz.
Bu işlem sırasında yeni arayüzler de kullanılabilir ve kendi derleme mantığınızı yeni API'ye güncelleyebilirsiniz. Bu özelliği devre dışı bırakmak için gradle.properties dosyanıza şu satırı ekleyin:
android.newDsl=false
AGP 9.0'a yükseltmeden önce yeni API'lere yükseltmeye de başlayabilirsiniz. Yeni arayüzler birçok AGP sürümünde kullanılabildiğinden yeni ve eski sürümleri birlikte kullanabilirsiniz. AGP API referans belgelerinde, her AGP sürümünün API yüzeyi ve her sınıf, yöntem ve alanın ne zaman eklendiği gösterilir.
9.0 alfa aşamasında, eklenti yazarlarına yeni modlarla tamamen uyumlu eklentiler geliştirmeleri ve yayınlamaları için yardımcı oluyoruz. Ayrıca, Android Studio'daki AGP Yükseltme Yardımcısı'nı geliştirerek taşıma sürecinde size yol göstereceğiz.
Yeni DSL veya Variant API'de eksik özellikler olduğunu fark ederseniz lütfen en kısa sürede bir sorun kaydı oluşturun.
Yerleşik Kotlin
Android Gradle eklentisi 9.0, yerleşik Kotlin desteği sunar ve bu desteği varsayılan olarak etkinleştirir. Bu nedenle, Kotlin kaynak dosyalarını derlemek için artık derleme dosyalarınızda org.jetbrains.kotlin.android (veya kotlin-android) eklentisini uygulamanız gerekmez.
Bu, Kotlin'in AGP ile entegrasyonunu basitleştirir, kullanımdan kaldırılan API'lerin kullanılmasını önler ve bazı durumlarda performansı artırır.
Bu nedenle, projenizi AGP 9.0'a yükselttiğinizde yerleşik Kotlin'e geçmeniz veya bu özelliği devre dışı bırakmanız gerekir.
Ayrıca, Kotlin kaynakları olmayan Gradle alt projeleri için yerleşik Kotlin desteğini seçerek devre dışı bırakabilirsiniz.
Kotlin Gradle eklentisine çalışma zamanı bağımlılığı
Android Gradle eklentisi 9.0, yerleşik Kotlin desteği sağlamak için artık Kotlin Gradle eklentisi (KGP) 2.2.10'a çalışma zamanı bağımlılığına sahiptir. Bu nedenle artık KGP sürümü bildirmeniz gerekmez. 2.2.10'dan eski bir KGP sürümü kullanıyorsanız Gradle, KGP sürümünüzü otomatik olarak 2.2.10'a yükseltir. Benzer şekilde, 2.2.10-2.0.2'den eski bir KSP sürümü kullanıyorsanız AGP, KGP sürümüyle eşleşmesi için KSP sürümünü 2.2.10-2.0.2'ye yükseltir.
Daha yeni bir KGP sürümüne yükseltme
KGP veya KSP'nin daha yüksek bir sürümünü kullanmak için üst düzey derleme dosyanıza aşağıdakileri ekleyin:
buildscript {
dependencies {
// For KGP
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:KGP_VERSION")
// For KSP
classpath("com.google.devtoolsksp:symbol-processing-gradle-plugin:KSP_VERSION")
}
}
Daha eski bir KGP sürümüne geçme
Yalnızca yerleşik Kotlin'i devre dışı bıraktıysanız KGP sürümünü düşürebilirsiniz. Bunun nedeni, AGP 9.0'da yerleşik Kotlin'in varsayılan olarak etkinleştirilmesi ve yerleşik Kotlin'in KGP 2.2.10 veya sonraki sürümlerini gerektirmesidir.
KGP veya KSP'nin daha eski bir sürümünü kullanmak için bu sürümü üst düzey derleme dosyanızda katı sürüm bildirimiyle beyan edin:
buildscript {
dependencies {
// For KGP
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin") {
version { strictly("KGP_VERSION") }
}
// For KSP
classpath("com.google.devtoolsksp:symbol-processing-gradle-plugin") {
version { strictly("KSP_VERSION") }
}
}
}
Düşürebileceğiniz minimum KGP sürümünün 2.0.0 olduğunu unutmayın.
Test armatürleri için IDE desteği
AGP 9.0, test armatürleri için tam Android Studio IDE desteği sunar.
Fused Library Plugin
Fused Library Plugin (Önizleme), birden fazla kitaplığı tek bir Android kitaplığı AAR olarak yayınlamanıza olanak tanır. Bu sayede kullanıcılarınız yayınladığınız yapay nesnelere daha kolay güvenebilir.
Başlangıç hakkında bilgi için Fused Library ile birden fazla Android kitaplığını tek bir kitaplık olarak yayınlama başlıklı makaleyi inceleyin.
Davranış değişiklikleri
Android Gradle eklentisi 9.0'da aşağıdaki yeni davranışlar bulunur:
| Davranış | Öneri |
|---|---|
Android Gradle eklentisi 9.0, varsayılan olarak NDK'nın r28c sürümünü kullanır.
|
Kullanmak istediğiniz NDK sürümünü açıkça belirtmeyi düşünebilirsiniz. |
| Android Gradle eklentisi 9.0, varsayılan olarak bir kitaplığın tüketicilerinin aynı veya daha yüksek bir derleme SDK'sı sürümü kullanmasını gerektirir. |
Kitaplık kullanırken aynı veya daha yüksek derleme SDK'sını kullanın.
Bu mümkün değilse veya yayınladığınız bir kitaplığın tüketicilerine geçiş için daha fazla zaman vermek istiyorsanız AarMetadata.minCompileSdk'ı açıkça ayarlayın.
|
AGP 9.0, aşağıdaki Gradle özelliklerinin varsayılan değerleriyle ilgili güncellemeler içerir. Bu sayede, yükseltme yaparken AGP 8.13 davranışını koruma seçeneğine sahip olursunuz:
| Özellik | İşlev | AGP 8.13'ten AGP 9.0'a geçiş | Öneri |
|---|---|---|---|
android. |
android bloğunun eski uygulamalarını kullanıma sunmadan yeni DSL arayüzlerini kullanın.Bu, android.applicationVariants
gibi eski varyant API'lerine de artık erişilemeyeceği anlamına gelir.
|
false → true |
android.newDsl=false olarak ayarlayarak bu özelliği devre dışı bırakabilirsiniz.Projenizin kullandığı tüm eklentiler ve derleme mantığı uyumlu olduğunda, devre dışı bırakma işlemini kaldırın. |
android. |
Yerleşik Kotlin'i etkinleştirir. | false → true |
Mümkünse yerleşik Kotlin'e geçin veya özelliği devre dışı bırakın. |
android. |
Her kitaplığın farklı bir paket adı olmasını zorunlu kılar. | false → true |
Projenizdeki tüm kitaplıklar için benzersiz paket adları belirtin. Bu mümkün değilse taşıma işlemi sırasında bu işareti devre dışı bırakabilirsiniz. |
android. |
Varsayılan olarak androidx
bağımlılıklarını kullanın.
|
false → true |
androidx bağımlılıklarını benimseyin.
|
android. |
Varsayılan olarak androidx.test.runner.AndroidJUnitRunner sınıfıyla cihaz üzerinde testler çalıştırın. Bu sınıf, kullanımdan kaldırılan InstrumentationTestRunner sınıfının varsayılan değerini değiştirir.
android {
defaultConfig {
testInstrumentationRunner = "..."
}
} |
false → true |
Kullanın
AndroidJUnitRunner,
veya özel testInstrumentationRunner öğenizi açıkça belirtin.
|
android. |
Yapılandırmalar arasındaki bağımlılık kısıtlamalarının kullanımını kontrol eder. AGP 9.0'daki varsayılan değer false'dır. Bu değer yalnızca uygulama cihazı testlerinde (AndroidTest) kısıtlamaları kullanır.
Bu ayarı true olarak ayarlamak, 8.13 sürümündeki davranışa geri dönülmesini sağlar.
|
true → false |
Gerekmedikçe her yerde bağımlılık kısıtlamaları kullanmayın. Bu işaretin yeni varsayılanını kabul etmek, proje içe aktarma sürecinde optimizasyonları da etkinleştirir. Bu optimizasyonlar, çok sayıda Android kitaplığı alt projesi içeren derlemelerin içe aktarma süresini kısaltır. |
android. |
Uygulamalardaki kodu nihai olmayan bir R sınıfına göre derleyerek uygulama derlemesini kitaplık derlemesiyle uyumlu hale getirin. Bu, artımlılığı iyileştirir ve kaynak işleme akışında gelecekteki performans optimizasyonlarının önünü açar. |
false → true |
Birçok proje, kaynakta değişiklik yapmadan yeni davranışı benimseyebilir. R sınıfı alanları, sabit gerektiren herhangi bir yerde (ör. switch ifadeleri) kullanılıyorsa zincirleme if ifadeleri kullanmak için yeniden düzenleyin. |
android. |
Uygulamalarda ve testlerde hedef SDK sürümü için varsayılan değer olarak derleme SDK sürümünü kullanır. Bu değişiklikten önce hedef SDK sürümü varsayılan olarak minimum SDK sürümü oluyordu. |
false → true |
Uygulamalar ve testler için hedef SDK sürümünü açıkça belirtin. |
android. |
Yalnızca test edilen derleme türü için birim testi bileşenleri oluşturur. Varsayılan projede bu, hata ayıklama için tek bir birim testiyle sonuçlanır. Önceki davranış, birim testlerinin hata ayıklama veya yayınlama için çalıştırılmasıydı. |
false → true |
Projenizde hem hata ayıklama hem de yayın için testlerin çalıştırılması gerekmiyorsa herhangi bir değişiklik yapmanız gerekmez. |
android. |
AGP DSL'de belirtilen saklanacak dosyalardan herhangi biri diskte yoksa derleme işlemi hatayla sonuçlanır. Bu değişiklikten önce, dosya adlarındaki yazım hataları dosyaların sessizce yoksayılmasına neden oluyordu. | false → true |
Geçersiz ProGuard dosyası bildirimlerini kaldırın. |
android. |
R8'in sınıfları ve Android kaynaklarını birlikte değerlendirerek daha az Android kaynağı tutmasına olanak tanır. | false → true |
Projenizin saklama kuralları zaten tamamlanmışsa herhangi bir değişiklik yapmanız gerekmez. |
android. |
Bir sınıf korunurken varsayılan oluşturucuyu örtülü olarak korumayarak R8'in daha az şey korumasına olanak tanır.
Yani, -keep class A artık -keep class A { <init>(); }anlamına gelmiyor. |
false → true |
Projenizin saklama kuralları zaten tamamlanmışsa herhangi bir değişiklik yapmanız gerekmez.
Varsayılan oluşturucunun korunması gereken durumlarda projenizin saklama kurallarında -keep class A
yerine
-keep class A { <init>(); }
kullanın.
|
android. |
Tüm alt projelerde
resValues
özelliğini etkinleştirir.
|
true → false |
Yalnızca ihtiyaç duyan alt projelerde resValues özelliğini etkinleştirin.
Bunu yapmak için bu projelerin Gradle derleme dosyalarında aşağıdakileri ayarlayın:
android {
buildFeatures {
resValues = true
}
} |
android. |
Tüm alt projelerde gölgelendirici derlemeyi etkinleştirir. | true → false |
Yalnızca derlenecek gölgelendiriciler içeren alt projelerde gölgelendirici derlemesini etkinleştirmek için bu projelerin Gradle derleme dosyalarında aşağıdakileri ayarlayın:
android {
buildFeatures {
shaders = true
}
} |
android. |
AGP 9.0'da getDefaultProguardFile(), proguard-android.txt yerine yalnızca proguard-android-optimize.txt'yi destekleyecektir. Bu, proguard-android.txt içinde yer alan dontoptimize işaretinin yanlışlıkla kullanılmasını önlemek içindir.
|
false → true |
Optimizasyonu önlemek istiyorsanız proguard-android-optimize.txt kullanmanın yanı sıra özel bir proguardFile'da dontoptimize değerini açıkça belirtebilirsiniz. Mümkünse bu dosyadan dontoptimize işaretini kaldırın. Bu işaret, R8 optimizasyonunun avantajlarını azaltır. Aksi takdirde android.r8.globalOptionsInConsumerRules.disallowed=false ayarını yaparak kapsam dışında kalabilirsiniz.
|
android. |
AGP 9.0'dan itibaren, tüketici saklama dosyaları sorunlu Proguard yapılandırmaları içeriyorsa Android kitaplığı ve özellik modülü yayınlama işlemi başarısız olur. dontoptimize veya dontobfuscate gibi genel seçenekleri içeren tüketici tutma dosyaları yalnızca uygulama modüllerinde kullanılmalı ve kitaplık kullanıcıları için optimizasyon avantajlarını azaltabilir. Android uygulama modülü derlemesi, önceden derlenmiş bir bağımlılığa (JAR veya AAR) yerleştirilmişse bu tür genel seçenekleri sessizce yoksayar. Bu durumun ne zaman gerçekleştiğini, configuration.txt dosyasında (genellikle <app_module>/build/outputs/mapping/<build_variant>/configuration.txt gibi bir yolda) şu tür yorumları kontrol ederek görebilirsiniz: # REMOVED CONSUMER RULE: dontoptimize
|
false → true |
Yayınlanan kitaplıklar, uyumsuz kuralları kaldırmalıdır. Dahili kitaplıklar, uyumsuz ancak gerekli kuralları bunun yerine bir uygulama modülündeki proguardFile'a taşımalıdır. android.r8.globalOptionsInConsumerRules.disallowed=false ayarını yaparak devre dışı bırakabilirsiniz. Tüm tüketici saklama dosyalarınız uyumlu hale geldiğinde devre dışı bırakma işlemini kaldırın.
|
android. |
AndroidSourceSet DSL'sini kullanarak oluşturulan kaynaklar için sağlayıcıların iletilmesine izin vermeyin.
|
false → true |
Oluşturulan kaynakları kaydetmek için androidComponents üzerinde
Sources
API'yi kullanın.
|
android. |
Gölgelendirici derleme etkinse local.properties içinde gölgelendirici derleyici yolunun açıkça ayarlanması gerekir.
|
false → true |
Projenizin local.properties bölümüne glslc.dir=/path/to/shader-tools ekleyin.
|
Kaldırılan özellikler
Android Gradle eklentisi 9.0, aşağıdaki işlevleri kaldırır:
- Yerleştirilmiş Wear OS uygulaması desteği
AGP 9.0, Wear OS uygulamalarının yerleştirilmesiyle ilgili desteği kaldırıyor. Bu özellik artık Play'de desteklenmiyor. Bu kapsamda,wearAppyapılandırmaları veAndroidSourceSet.wearAppConfigurationNameDSL'nin kaldırılması da yer alır. Uygulamanızı Wear OS'te yayınlama hakkında bilgi edinmek için Wear OS'e dağıtma başlıklı makaleyi inceleyin. androidDependenciesvesourceSetsrapor görevleri- Yoğunluğa göre bölünmüş APK desteği
AGP 9.0, ekran yoğunluğuna göre bölünmüş APK oluşturma desteğini kaldırıyor. İşlev ve ilgili API'ler kaldırıldı. AGP 9.0 veya sonraki sürümleri kullanarak APK'ları ekran yoğunluğuna göre bölmek için uygulama paketlerini kullanın.
Değiştirilen DSL
Android Gradle eklentisi 9.0'da aşağıdaki DSL'yi bozan değişiklikler yapıldı:
CommonExtensionparametrelendirmesi kaldırıldı.Bu değişiklik, gelecekte kaynak düzeyinde yapılacak değişikliklerin önüne geçmek için yalnızca kaynak düzeyinde yapılan bir değişikliğe yol açar. Ancak bu değişiklik, engelleme yöntemlerinin
CommonExtension'denApplicationExtension,LibraryExtension,DynamicFeatureExtensionveTestExtension'e taşınması gerektiği anlamına da gelir.Projenizi AGP 9.0'a yükseltirken bu parametreleri veya blok yöntemlerini kullanan Gradle eklenti kodunu yeniden düzenleyin. Örneğin, aşağıdaki eklenti, tür parametresini kaldıracak ve kaldırılan blok yöntemlerine dayanmayacak şekilde güncellenir:
AGP 8.13
val commonExtension: CommonExtension<*, *, *, *, *, *> = extensions.getByType(CommonExtension::class) commonExtension.apply { defaultConfig { minSdk { version = release(28) } } }AGP 9.0
val commonExtension: CommonExtension = extensions.getByType(CommonExtension::class) commonExtension.apply { defaultConfig.apply { minSdk { version = release(28) } } }Bir dizi AGP sürümünü hedefleyen eklentilerde, getter'ı doğrudan kullanmak 9.0'dan önceki AGP sürümleriyle ikili uyumludur.
DSL kaldırıldı
Android Gradle eklentisi 9.0'da kaldırılanlar:
AndroidSourceSet.jni, çünkü işlevsel değildi.AndroidSourceSet.wearAppConfigurationName, kaldırılan yerleşik Wear OS uygulama desteğiyle ilgili olarak.BuildType.isRenderscriptDebuggable, çünkü işlevsel değildi.DependencyVariantSelection. YeriniDependencySelectionaldı.kotlin.android.localDependencySelectionolarak kullanıma sunulur.Installation.installOptions(String). Bu özellik,Installation.installOptionsöğesinin değiştirilebilir özelliğiyle değiştirildi.Deneyseldir ancak asla sabitlenmez
PostProcessingbloğu.ProductFlavor.setDimension,dimensionözelliğiyle değiştirilir.LanguageSplitOptions, yalnızca kullanımdan kaldırılan Google Play Instant için yararlıydı.DensitySplit, çünkü özellik artık desteklenmiyor. Yerine App Bundle kullanılacaktır.
Kaldırılan API'ler
Android Gradle eklentisi 9.0'da kaldırılanlar:
AndroidComponentsExtension.finalizeDSl. Bu işlevin yerinifinalizeDslaldı.Component.transformClassesWith. Bu işlevin yeriniInstrumentation.transformClassesWithaldı.Component.setAsmFramesComputationMode. Bu işlevin yeriniInstrumentation.setAsmFramesComputationModealdı.ComponentBuilder.enabled. Bu işlevin yeriniComponentBuilder.enablealdı.DependenciesInfoBuilder.includedInApk. Bu işlevin yerineincludeInApkişlevi kullanılacak.DependenciesInfoBuilder.includedInBundle. Bu işlevin yerineincludeInBundleişlevi kullanılacak.GeneratesApk.targetSdkVersion.targetSdkile değiştirildi.Variant.minSdkVersion.minSdkile değiştirildi.Variant.maxSdkVersion.maxSdkile değiştirildi.Variant.targetSdkVersion.targetSdkile değiştirildi.Variant.unitTest,com.android.testeklentisi için geçerli olmadığından.unitTest,VariantBuilderalt türlerindeHasUnitTestiçin kullanılabilir.Kitaplıklarda anlamlı olmadıkları için
VariantBuilder.targetSdkvetargetSdkPreview. Bunun yerineGeneratesApkBuilder.targetSdkveyaGeneratesApkBuilder.targetSdkPreviewkullanın.VariantBuilder.enableUnitTest,com.android.testeklentisi için geçerli olmadığından.enableUnitTest,VariantBuilderalt türlerindeHasUnitTestBuilderiçin kullanılabilir.VariantBuilder.unitTestEnabled,HasUnitTestBuilderöğesini genişletenVariantBuilderalt türlerinde daha tutarlı bir şekilde adlandırılanenableUnitTestlehine kaldırıldı.VariantOutput.enable.enabledile değiştirildi.Kullanımdan kaldırılan ve devre dışı bırakılan
FeaturePluginveFeatureExtension.Yalnızca AGP 4.2 veya daha eski sürümlerde çalışmayı hedeflerken en yeni AGP sürümüne göre derlemeye izin vermek için kalan, desteği sonlandırılmış ve devre dışı bırakılmış
BaseExtension.registerTransformAPI'ler.
Kaldırılan Gradle özellikleri
Aşağıdaki Gradle özellikleri, başlangıçta varsayılan olarak etkinleştirilen özellikleri genel olarak devre dışı bırakmanın yolları olarak eklenmişti.
Bu özellikler, AGP 8.0 veya daha eski sürümlerde varsayılan olarak devre dışı bırakılmıştır. Daha verimli bir derleme için bu özellikleri yalnızca bunları kullanan alt projelerde etkinleştirin.
| Özellik | İşlev | Değiştirme |
|---|---|---|
android. |
Tüm alt projelerde AIDL derlemesini etkinleştirir. |
Yalnızca AIDL kaynaklarının bulunduğu alt projelerde AIDL derlemesini etkinleştirmek için
bu projelerin Gradle derleme dosyalarında aşağıdaki özelliği ayarlayın:
android {
buildFeatures {
aidl = true
}
} |
android. |
Tüm alt projelerde RenderScript derlemesini etkinleştirir. |
Yalnızca renderscript kaynaklarının bulunduğu alt projelerde renderscript derlemesini etkinleştirmek için bu projelerin Gradle derleme dosyalarında aşağıdaki özelliği ayarlayın:
android {
buildFeatures {
renderScript = true
}
} |
Zorunlu kılınan Gradle özellikleri
AGP 9.0, aşağıdaki Gradle özelliklerini ayarlarsanız hata verir.
Android Gradle eklentisi Yükseltme Asistanı, bu özellikleri kullanan projeleri AGP 9.0'a yükseltmez.
| Özellik | İşlev |
|---|---|
android. |
Kaynak küçültme artık her zaman R8'in bir parçası olarak çalıştırılıyor. Önceki uygulama kaldırıldı. |
android. |
Kaynak küçültme artık her zaman hassas kaynak küçültme kullanıyor. Bu sayede daha fazla kaynak kaldırılabiliyor. |
Çözülen sorunlar
Android Gradle eklentisi 9.0.0-beta04
| Çözülen Sorunlar | |||
|---|---|---|---|
| Android Gradle eklentisi |
|
||
Android Gradle eklentisi 9.0.0-beta03
| Çözülen Sorunlar | |
|---|---|
| AGP 9.0.0-beta03'te herkese açık sorunlar düzeltildi olarak işaretlenmedi. |
Android Gradle eklentisi 9.0.0-beta02
| Çözülen Sorunlar | ||||
|---|---|---|---|---|
| Android Gradle eklentisi |
|
|||
| Hata analizi |
|
|||
| Hata Analizi Entegrasyonu |
|
|||
Android Gradle eklentisi 9.0.0-beta01
| Çözülen Sorunlar | |
|---|---|
| AGP 9.0.0-beta01 sürümünde herkese açık sorunlar düzeltildi olarak işaretlenmedi. |
Android Gradle eklentisi 9.0.0-alpha14
| Çözülen Sorunlar | |||||||
|---|---|---|---|---|---|---|---|
| Android Gradle eklentisi |
|
||||||
| Hata Analizi Entegrasyonu |
|
||||||
| Shrinker (R8) |
|
||||||
Android Gradle eklentisi 9.0.0-alpha13
| Çözülen Sorunlar | ||||
|---|---|---|---|---|
| Android Gradle eklentisi |
|
|||
Android Gradle eklentisi 9.0.0-alpha12
| Çözülen Sorunlar | |||||
|---|---|---|---|---|---|
| Android Gradle eklentisi |
|
||||
Android Gradle eklentisi 9.0.0-alpha11
| Çözülen Sorunlar | ||||
|---|---|---|---|---|
| Android Gradle eklentisi |
|
|||
Android Gradle eklentisi 9.0.0-alpha10
| Çözülen Sorunlar | ||||
|---|---|---|---|---|
| Android Gradle eklentisi |
|
|||
| Hata analizi |
|
|||
Android Gradle eklentisi 9.0.0-alpha09
| Çözülen Sorunlar | ||||
|---|---|---|---|---|
| Android Gradle eklentisi |
|
|||
Android Gradle eklentisi 9.0.0-alpha08
| Çözülen Sorunlar | |
|---|---|
| AGP 9.0.0-alpha08'de herkese açık sorunlar düzeltildi olarak işaretlenmedi. |
Android Gradle eklentisi 9.0.0-alpha07
| Çözülen Sorunlar | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| Android Gradle eklentisi |
|
||||||||
Android Gradle eklentisi 9.0.0-alpha06
| Çözülen Sorunlar | |||||
|---|---|---|---|---|---|
| Android Gradle eklentisi |
|
||||
| Hata analizi |
|
||||
Android Gradle eklentisi 9.0.0-alpha05
| Çözülen Sorunlar | |||||
|---|---|---|---|---|---|
| Android Gradle eklentisi |
|
||||
| Hata analizi |
|
||||
Android Gradle eklentisi 9.0.0-alpha04
| Çözülen Sorunlar | ||||
|---|---|---|---|---|
| Android Gradle eklentisi |
|
|||
| Hata analizi |
|
|||
Android Gradle eklentisi 9.0.0-alpha03
| Çözülen Sorunlar | ||||
|---|---|---|---|---|
| Android Gradle eklentisi |
|
|||
| Hata analizi |
|
|||
Android Gradle eklentisi 9.0.0-alpha02
| Çözülen Sorunlar | ||||
|---|---|---|---|---|
| Android Gradle eklentisi |
|
|||
Android Gradle eklentisi 9.0.0-alpha01
| Çözülen Sorunlar | |||||||
|---|---|---|---|---|---|---|---|
| Android Gradle eklentisi |
|
||||||