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-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.android eklentisi, yeni DSL ile uyumlu değildir.
  • KMP projelerini KMP için Android Gradle kitaplık eklentisine geçirme: org.jetbrains.kotlin.multiplatform eklentisinin com.android.library ve com.android.application eklentileriyle 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. applicationVariants ve benzeri API'lerin tüm kullanımlarını yeni androidComponents API ile değiştirin. androidComponents API'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 ve
unitTestVariants
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)
    }
}
Önceki tüm API'lerin doğrudan yerine geçecek bir API olmayabilir. Yeni varyant API'lerinin kapsamadığı bir kullanım alanı varsa sorun bildirin.
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 ve
testServer
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 ve
adbExe
Ö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 ve
wrapJavaSourceSet
Ç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.newDsl 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.
falsetrue 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.builtInKotlin Yerleşik Kotlin'i etkinleştirir. falsetrue Mümkünse yerleşik Kotlin'e geçin veya özelliği devre dışı bırakın.
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.useAndroidx Varsayılan olarak androidx bağımlılıklarını kullanın. falsetrue androidx bağımlılıklarını benimseyin.
android.default.androidx.test.runner 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 = "..."
  }
}
falsetrue Kullanın AndroidJUnitRunner, veya özel testInstrumentationRunner öğenizi açıkça belirtin.
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'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.
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.
android.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 gelecekteki 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ış, birim testlerinin hata ayıklama veya yayınlama için ç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 sonuçlanır. 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ğı tutması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 oluşturucunun korunması gereken durumlarda projenizin saklama kurallarında -keep class A yerine -keep class A { <init>(); } kullanın.
android.defaults.buildfeatures.resvalues Tüm alt projelerde resValues özelliğini etkinleştirir. truefalse 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.defaults.buildfeatures.shaders Tüm alt projelerde gölgelendirici derlemeyi etkinleştirir. truefalse 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.r8.proguardAndroidTxt.disallowed 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. falsetrue 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.r8.globalOptionsInConsumerRules.disallowed 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 falsetrue 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.sourceset.disallowProvider AndroidSourceSet DSL'sini kullanarak oluşturulan kaynaklar için sağlayıcıların iletilmesine izin vermeyin. falsetrue Oluşturulan kaynakları kaydetmek için androidComponents üzerinde Sources API'yi kullanın.
android.custom.shader.path.required Gölgelendirici derleme etkinse local.properties içinde gölgelendirici derleyici yolunun açıkça ayarlanması gerekir. falsetrue 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, wearApp yapılandırmaları ve AndroidSourceSet.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 ve sourceSets rapor 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ı:

  • CommonExtension parametrelendirmesi 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'den ApplicationExtension, LibraryExtension, DynamicFeatureExtension ve TestExtension'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:

Kaldırılan API'ler

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
  }
}

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ı.
android.enableNewResourceShrinker.preciseShrinking 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
AGP'deki yerleşik Kotlin desteği, Kotlin kaynak kümeleriyle senkronize edilmemelidir.
missingDimensionStrategy, alakasız bir boyuttan olsa bile kendi adıyla eşleşen bir lezzeti tercih ediyor

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
Özellik isteği: İdeal AGP sürümünü özellik olarak ekleme
Stabilize SingleArtifact.VERSION_CONTROL_INFO_FILE
androidTest connectedCheck logcat output is broken
Hata analizi
AGP 8.11.0: .gradle.kts dosyaları apply(from = "...") ile uygulandığında lintAnalyzeRelease görevi kilitleniyor
Hata Analizi Entegrasyonu
AndroidLintAnalysisTask önbelleği, systemPropertyInputs.javaVersion farklılıkları nedeniyle farklı JDK satıcıları veya küçük sürümler arasında kaçırılıyor

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
AGP'deki yerleşik Kotlin desteği, Kotlin kaynak kümeleriyle senkronize edilmemelidir.
Tüketici koruma dosyası -dontobfuscate içeriyorsa Android kitaplık yayınlama işlemi başarısız olur.
Optimize Edilmiş Kaynaklar İçin Yazdırma Eşleme Seçeneği Yok
Bu aşama geçildikten sonra finalizeDsl'nin çağrılması hata olarak kabul edilir.
AGP, Jetifier devre dışı bırakılmış olsa bile Jetifier yapılandırmasını başlatıyor
Kotlin ile oluşturulan projelerde, `kotlin.stdlib.default.dependency` modül ve pom dosyaları için doğru olduğunda kotlinStdlib derleme zamanı bağımlılığı olarak eklenmiyor.
Hata Analizi Entegrasyonu
Lint, compileSdk'ya rağmen en son yüklenen SDK'yı otomatik olarak kullanıyor, görev girişi olarak kaydedilmiyor ve önbelleğe almayı bozuyor
Shrinker (R8)
Son kaynak kimlikleri kullanılıyorsa R8 ile optimize edilmiş kaynakları kaldırma işlemi sessizce başarısız oluyor

Android Gradle eklentisi 9.0.0-alpha13

Çözülen Sorunlar
Android Gradle eklentisi
AGP9: `variant.sources.kotlin!!.addGeneratedSourceDirectory()` çalışmıyor
Derleme SDK'sında Aar meta veri kontrolleri eski DSL'yi kullanıyor
Kullanımdan kaldırılan "com.android.build.api.dsl.ManagedDevices.devices" özelliğini kaldırın

Android Gradle eklentisi 9.0.0-alpha12

Çözülen Sorunlar
Android Gradle eklentisi
Saf Java projeleri, Kotlin stdlib'e bağlıdır.
AGP 9.0'da kullanımdan kaldırılan KotlinMultiplatformAndroidCompilationBuilder özelliklerini kaldırma
`com.android.tools.build:gradle:9.0.0-alpha05`, KGP ve gradle-api üzerinde bir API bağımlılığına sahip olmalıdır.
com.android.experimental.built-in-kotlin Gradle eklentisini yeniden adlandırma

Android Gradle eklentisi 9.0.0-alpha11

Çözülen Sorunlar
Android Gradle eklentisi
Built-in-kotlin, kotlin-stdlib bağımlılık kısıtlamasını Maven POM'da yayınlamıyor
compileSdk ile targetSdk arasındaki farklılık için test durumu ekleyin
Boş resConfigs değeri, anlaşılması zor bir aapt hatasına yol açıyor

Android Gradle eklentisi 9.0.0-alpha10

Çözülen Sorunlar
Android Gradle eklentisi
extractNativeLibs ve useEmbeddedDex, manifestten gelmemelidir.
AGP 9.0.0-alpha09'da R8'den gelen uyarılar
Hata analizi
Yerleşik Kotlin, META-INF'ye .kotlin_module eklemiyor
Lint classpath, farklı sürümlerde yinelenen sınıflar içeriyor
Özel kaynakları geçersiz kılma geçici çözümü çalışmıyor (tools:override = "true")

Android Gradle eklentisi 9.0.0-alpha09

Çözülen Sorunlar
Android Gradle eklentisi
`legacy-kapt` eklentisi, `kotlin-kapt` eklentisinin aksine ek açıklama işlemeyi atlıyor
compileSdkSpec.minorApiLevel, SettingsExtension ile çalışmıyor
[fused lib - public] Oluşturulan birleştirilmiş kitaplık kaynakları içermiyor

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
Kod oluşturma görevleri varsa derleme başarısız olur
`android.builtInKotlin=false`, `android.newDsl=false` ve `android.enableLegacyVariantApi=false` ile `kotlin-android` eklentisinin kullanılması "API 'applicationVariants' is obsolete" hatasıyla başarısız oluyor.
kotlin.stdlib.default.dependency=false olduğunda yerleşik Kotlin, sürüm içermeyen kotlin-stdlib'i çözemiyor
DexData, dosyayı kapatmadan açtığı için temizleme işlemi engelleniyor
AndroidSourceDirectorySet, AGP 9.0'da PatternFilterable'ı genişletmeyi bırakmalıdır.
Yalnızca test modüllerinde test düzeneği hatası
Test fikstürlerinde bağlam alıcıları kullanılırken yanlış hata
testFixtures'daki Kotlin kodu için yanlış IDE hataları

Android Gradle eklentisi 9.0.0-alpha06

Çözülen Sorunlar
Android Gradle eklentisi
Yeni optimizasyon DSL'si varsayılan olarak configuration.txt oluşturmaz
AGP 8.13.0, bir modüldeki gezinme grafiğini doğrulayamıyor
AGP, kullanımdan kaldırılan Gradle API'sini kullanıyor: çok dizeli gösterim
minSdkVersion >=21 olan eski multidex kitaplığını kullanmaya çalışan kullanıcıları uyarma
Hata analizi
Lint ChecksSdkIntAtLeast Check, açıklama eklenen değerin doğru olup olmadığını kontrol etmiyor

Android Gradle eklentisi 9.0.0-alpha05

Çözülen Sorunlar
Android Gradle eklentisi
android.proguard.failOnMissingFiles, consumerProguardFiles için çalışmıyor
Kotlin Gradle eklentisi bağımlılığını 2.2.10 sürümüne güncelleyin.
KGP API'sini kullanarak KotlinJvmAndroidCompilation oluşturma
Kotlin açık API modu, test kaynaklarına uygulandı
Hata analizi
Lint, "K2 önbellekleri temizlenemedi" uyarısı veriyor

Android Gradle eklentisi 9.0.0-alpha04

Çözülen Sorunlar
Android Gradle eklentisi
AGP 9.0'da varsayılan kaynak/hedef Java sürümünü Java 8'den Java 11'e geçirme
android.useAndroidX varsayılan değerini true olarak değiştirin.
Dahili Kotlin ile kapt eklentisi uygularken daha iyi istisna.
Hata analizi
Lint, "K2 önbellekleri temizlenemedi" uyarısı veriyor

Android Gradle eklentisi 9.0.0-alpha03

Çözülen Sorunlar
Android Gradle eklentisi
`isIncludeAndroidResources` etkinleştirildiğinde `process{Variant}UnitTestManifest`, AGP 8.12.0'da tools:overrideLibrary kullanımlarını birleştiremiyor
AGP, JVM test görevleri için Gradle'de desteğin sonlandırılmasıyla ilgili uyarılara neden oluyor
DependencyReportTask, yapılandırma önbelleğiyle uyumlu değil
Hata analizi
Hata: Kullanılmayan kaynakların kaldırılması, bu kaynakların çevirilerini de kaldırmıyor ve bu konuda soru sormuyor.

Android Gradle eklentisi 9.0.0-alpha02

Çözülen Sorunlar
Android Gradle eklentisi
Proguard dosyası mevcut olmadığında derleme başarısız oluyor
remove buildconfig defaults gradle.properties flags
Uygulamanın targetSdk varsayılan değerini minSdk yerine compileSdk'ya göre olacak şekilde değiştirin.

Android Gradle eklentisi 9.0.0-alpha01

Çözülen Sorunlar
Android Gradle eklentisi
AGP 9.0'da desteği sonlandırılan AndroidSourceSet.jni'yi kaldırma
AGP 9.0'da Installation.installOptions() öğesini kaldırma
AGP 9.0'da BuildType.isRenderscriptDebuggable'ı kaldırın.
android.defaults.buildfeatures.renderscript öğesini kaldırın.
`com.android.kotlin.multiplatform.library`, Gradle tarafından yönetilen cihazlarda kilitleniyor
`android.defaults.buildfeatures.aidl` varsayılan gradle.properties işaretlerini kaldırın.