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-alpha04 sürümüne güncellemek için Android Studio Narwhal 4 Feature Drop | 2025.1.4'te Android Gradle eklentisi Yükseltme Asistanı'nı kullanın.
AGP yükseltme asistanı, projenizi yükseltirken uygun olduğunda mevcut davranışları korumaya 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-alpha04'ün desteklediği maksimum Android API düzeyi, API düzeyi 36'dır.
Android Gradle eklentisi 9.0.0-alpha04 için Gradle 9.0.0 gerekir.
Minimum sürüm | Varsayılan sürüm | Notlar | |
---|---|---|---|
Gradle | 9.0.0 | 9.0.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. |
Dahili DSL uygulamaları ve desteği sonlandırılan varyant API'si artık açıkça etkinleştirilmelidir
Android Gradle eklentisi artık tanımlanmış bir API yüzeyine sahip. Desteklenen API'ler com.android.tools.build:gradle-api
Maven yapısında tanımlanıyor.
Mevcut ikili eklentiler ve derleme komut dosyalarıyla uyumluluk için, tanımlanan API yüzeyinden önce gelen önceki DSL uygulamaları, AGP 8.13 ve önceki sürümlerde varsayılan olarak kullanıma sunulmaya devam etti. Bu sayede Gradle eklentilerindeki ve derleme komut dosyalarındaki kod, DSL'nin hem dahili uygulama ayrıntılarına hem de 2026'da AGP 10'da kaldırılacak olan, kullanımdan kaldırılmış android.applicationVariants
, android.libraryVariants
, android.testVariants
ve android.unitTestVariants
API'lerine erişebilir.
Bu geçişi daha görünür hale getirmek için hem eski varyant API'sine hem de dahili DSL'ye varsayılan olarak Android Gradle eklentisi 9.0.0-alpha04'te erişilemez.
android.newDsl=false
içinde gradle.properties
değerini ayarlayarak kullanımdan kaldırılan API'yi tekrar kullanmaya başlayabilirsiniz.
9.0 alfa serisi sırasında, eklenti yazarlarına yeni modlarla tamamen uyumlu eklentiler geliştirmeleri ve yayınlamaları için yardımcı olmak üzere ulaşıyoruz. Ayrıca, Android Studio'daki AGP Yükseltme Asistanı'nı geliştirerek geçiş sürecinde size yol göstereceğiz.
Yerleşik Kotlin
Android Gradle eklentisi 9, Kotlin'i derlemek için yerleşik destek içerir ve ayrı olarak uygulanan Kotlin eklentisinin yerini alır. Bu sayede AGP ile entegrasyon basitleştirilir, kullanımdan kaldırılan API'lerin kullanımı önlenir ve bazı durumlarda performans artırılır.
Android Gradle eklentisi 9, Kotlin Gradle eklentisi 2.2.0'a çalışma zamanı bağımlılığına sahiptir. Bu, yerleşik Kotlin desteği için gereken minimum sürümdür.
android.builtInKotlin=false
ayarını yaparak yerleşik Kotlin'i devre dışı bırakabilirsiniz.
Devre dışı bırakmayı seçtiyseniz ve kotlin Gradle eklentisinin eski bir sürümünü kullanmanız gerekiyorsa sürümü düşürmeyi zorlayabilirsiniz.
buildscript {
dependencies {
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin") {
version { strictly("2.0.0") } // or another version that you want to use
}
}
}
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, kitaplık tüketicilerinin varsayılan olarak aynı veya daha yüksek bir derleme SDK'sı sürümü kullanmasını gerektirir. |
Kitaplık kullanırken aynı veya daha yüksek bir derleme SDK'sı 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.newDsl |
android bloğunun eski uygulamalarını kullanıma sunmadan yeni DSL arayüzlerini kullanın.Bu durum, android.applicationVariants gibi eski varyant API'lerine de erişilemeyeceği anlamına gelir.
android.applicationVariants
artık erişilemez.
|
false → true |
android.newDsl=false değerini 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.builtInKotlin |
Kotlin kodunun doğrudan Android Gradle eklentisinde org.jetbrains.kotlin.android eklentisi olmadan derlenmesi için destek etkinleştirildi.
|
false → true |
Mümkünse org.jetbrains.kotlin.android eklentisinin kullanımını kaldırarak yerleşik Kotlin'i kullanın.
Aksi takdirde, android.builtInKotlin=false ayarını yaparak kapsam dışında kalabilirsiniz.
|
android.uniquePackageNames |
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.dependency.useConstraints |
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 olup yalnızca uygulama cihazı testlerindeki (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. |
aandroid.enableAppCompileTimeRClass |
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 gelecekte yapılacak 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.sdk.defaultTargetSdkToCompileSdkIfUnset |
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.onlyEnableUnitTestForTheTestedBuildType |
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ış, hata ayıklama veya yayın için birim testlerinin ç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.proguard.failOnMissingFiles |
AGP DSL'de belirtilen saklanacak dosyalardan herhangi biri diskte yoksa derleme işlemi hatayla başarısız olur. 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.optimizedResourceShrinking |
R8'in sınıfları ve Android kaynaklarını birlikte değerlendirerek daha az Android kaynağını korumasına olanak tanır. | false → true |
Projenizin saklama kuralları zaten tamamlanmışsa herhangi bir değişiklik yapmanız gerekmez. |
android.r8.strictFullModeForKeepRules |
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 -keep class A
yapılandırıcının korunması gereken tüm durumlarda, projenizin saklama kurallarında
-keep class A { <init>(); }
ile değiştirin.
|
android.defaults.buildfeatures.shaders |
Tüm alt projelerde gölgelendirici derlemesini etkinleştirir. | true → false |
Yalnızca derlenecek gölgelendiricileri 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 } } |
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,wearApp
yapılandırmaları veAndroidSourceSet.wearAppConfigurationName
DSL'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. androidDependencies
vesourceSets
rapor görevleri
Değiştirilen DSL
Android Gradle eklentisi 9.0'da aşağıdaki DSL değişiklikleri yapıldı:
CommonExtension
parametrelendirmesi kaldırıldı.Bu değişiklik, gelecekte kaynak düzeyinde yapılacak değişikliklerin önüne geçmek için kaynak düzeyinde yapılan bir değişikliktir. Ancak bu değişiklik, blok yöntemlerinin
CommonExtension
yerineApplicationExtension
,LibraryExension
,DynamicFeatureExtension
veTestExtension
olarak değiştirilmesi 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 düşük AGP sürümleriyle ikili uyumludur.
Kaldırılan DSL
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.ComponentBuilder.enabled
. Bu işlevin yeriniComponentBuilder.enable
aldı.DependencyVariantSelection
.DependencySelection
ile değiştirildi.kotlin.android
olarak kullanıma sunulur.Installation.installOptions(String)
. Bu özellik,Installation.installOptions
öğesinin değiştirilebilir özelliğiyle değiştirildi.Kitaplıklarda anlamlı olmadıkları için
VariantBuilder.targetSdk
vetargetSdkPreview
. Bunun yerineGeneratesApkBuilder.targetSdk
veyaGeneratesApkBuilder.targetSdkPreview
kullanın.Deneysel olan ancak asla sabitlenmeyen
PostProcessing
bloğu.ProductFlavor.setDimension
,dimension
özelliğiyle değiştirilir.LanguageSplitOptions
, yalnızca kullanımdan kaldırılan Google Play Instant için yararlıydı.Variant.unitTest
,com.android.test
eklentisi için geçerli olmadığından.unitTest
,VariantBuilder
alt türlerindeHasUnitTest
için kullanılabilir.VariantBuilder.enableUnitTest
,com.android.test
eklentisi için geçerli olmadığından.enableUnitTest
,VariantBuilder
alt türlerindeHasUnitTestBuilder
için kullanılabilir.VariantBuilder.unitTestEnabled
,HasUnitTestBuilder
'ü genişletenVariantBuilder
alt türlerinde daha tutarlı bir şekilde adlandırılanenableUnitTest
lehine kaldırılıyor.
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.defaults.buildfeatures.aidl |
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.defaults.buildfeatures.renderscript |
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 } } |
Kaldırılan API'ler
Android Gradle eklentisi 9.0'da kaldırılanlar:
- 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.registerTransform
API'ler.
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.r8.integratedResourceShrinking |
Kaynak küçültme artık her zaman R8'in bir parçası olarak çalıştırılıyor. Önceki uygulama kaldırıldı. |