Android Gradle eklentisi önizlemesinin sürüm notları

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.
falsetrue 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. falsetrue 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. falsetrue 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.
truefalse 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.
falsetrue 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.
falsetrue 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ı.
falsetrue 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. falsetrue 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. falsetrue 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.
falsetrue 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. truefalse 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:

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 yerine ApplicationExtension, LibraryExension, DynamicFeatureExtension ve TestExtension 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:

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
  }
}
AIDL kaynaklarını içeren her alt projenin Gradle derleme dosyasında
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ı.