Android Gradle eklentisi 8.7 sürüm notları

JCenter deposu 31 Mart 2021'de salt okunur hale geldi. Daha fazla bilgi için JCenter hizmet güncellemesi başlıklı makaleyi inceleyin.

Android Studio derleme sistemi Gradle'i temel alır ve Android Gradle eklentisi, Android uygulamalarını derlemeye özgü çeşitli özellikler ekler. Android Gradle eklentisi (AGP) genellikle Android Studio ile birlikte güncellense de eklenti (ve Gradle sisteminin geri kalanı) Android Studio'dan bağımsız olarak çalışabilir ve ayrı olarak güncellenebilir.

Bu sayfada, Gradle araçlarınızı nasıl güncel tutacağınız ve en son güncellemelerde neler olduğu açıklanmaktadır. Önceki Android Gradle eklentisi sürümlerinin sürüm notları için önceki sürüm notlarına bakın.

Android Gradle eklentisinin bu sürümünde hangi sorunların düzeltildiğini görmek için kapalı sorunlara göz atın.

Android Gradle eklentisinde yapılacak önemli değişikliklerin üst düzey bir özeti için Android Gradle eklentisi yol haritasını inceleyin.

Android derlemelerinizi Gradle ile nasıl yapılandıracağınız hakkında ayrıntılı bilgi için aşağıdaki sayfalara bakın:

Gradle derleme sistemi hakkında daha fazla bilgi için Gradle kullanıcı kılavuzuna bakın.

Android Gradle eklentisini güncelleme

Android Studio'yu güncellediğinizde Android Gradle eklentisini mevcut en son sürüme otomatik olarak güncelleme istemi alabilirsiniz. Güncellemeyi kabul edebilir veya projenizin derleme gereksinimlerine göre manuel olarak bir sürüm belirtebilirsiniz.

Android Studio'da Dosya > Proje Yapısı > Proje menüsünden veya üst düzey build.gradle.kts dosyasından eklenti sürümünü belirtebilirsiniz. Bu Android Studio projesinde oluşturulan tüm modüller için geçerlidir. Aşağıdaki örnekte, build.gradle.kts dosyasından eklenti 8.7.0 sürümüne ayarlanmaktadır:

Kotlin

plugins {
    id("com.android.application") version "8.7.0" apply false
    id("com.android.library") version "8.7.0" apply false
    id("org.jetbrains.kotlin.android") version "2.0.20" apply false
}

Groovy

plugins {
    id 'com.android.application' version '8.7.0' apply false
    id 'com.android.library' version '8.7.0' apply false
    id 'org.jetbrains.kotlin.android' version '2.0.20' apply false
}

Dikkat: Sürüm sayılarında dinamik bağımlılıklardan (ör. 'com.android.tools.build:gradle:8.7.+') yararlanmamanız gerekir. Bu özelliğin kullanılması, beklenmedik sürüm güncellemelerine ve sürüm farklılıklarının giderilmesinde zorluklara neden olabilir.

Belirtilen eklenti sürümü indirilmediyse Gradle, projenizi bir sonraki sefer derlediğinizde veya Android Studio menü çubuğundan Dosya > Projeyi Gradle Dosyalarıyla Senkronize Et'i tıkladığınızda eklentiyi indirir.

Gradle'i güncelleme

Android Studio'yu güncellediğinizde Gradle'i de mevcut en son sürüme güncellemeniz istenebilir. Güncellemeyi kabul edebilir veya projenizin derleme gereksinimlerine göre manuel olarak bir sürüm belirtebilirsiniz.

Aşağıdaki tabloda, Android Gradle eklentisinin her sürümü için hangi Gradle sürümünün gerekli olduğu listelenmiştir. En iyi performans için hem Gradle hem de eklentinin mümkün olan en son sürümünü kullanmanız gerekir.

Eklenti sürümüGerekli minimum Gradle sürümü
8,78.9
8,68,7
8,58,7
8.48,6
8.38.4
8.28.2
8.18.0
8.08.0
7.47,5

Eski sürümler

Eklenti sürümüGerekli Gradle sürümü
7.37.4
7.27.3.3
7.17.2
7,07,0
4.2.0 ve üzeri6.7.1
4.1.0 ve üzeri6,5 ve üzeri
4.0.0 ve üzeri6.1.1 ve üzeri
3.6.0 - 3.6.45.6.4 ve üzeri
3.5.0 - 3.5.45.4.1 ve üzeri
3.4.0 - 3.4.35.1.1 ve üzeri
3.3.0 - 3.3.34.10.1 ve üzeri
3.2.0 - 3.2.14,6 ve üzeri
3.1.0 ve üzeri4.4 ve üzeri
3.0.0 ve üzeri4.1 ve üzeri
2.3.0 ve üzeri3,3 ve üzeri
2.1.3 - 2.2.32.14.1 - 3.5
2.0.0 - 2.1.22.10 - 2.13
1.5.02.2.1 - 2.13
1.2.0 - 1.3.12.2.1 - 2.9
1.0.0 - 1.1.32.2.1 - 2.3

Gradle sürümünü Android Studio'daki Dosya > Proje Yapısı > Proje menüsünden belirtebilir veya komut satırını kullanarak Gradle sürümünüzü güncelleyebilirsiniz. Tercih edilen yöntem, gradlew komut dosyalarını güncelleyen Gradle Wrapper komut satırı aracını kullanmaktır. Aşağıdaki örnekte, Gradle Wrapper kullanılarak Gradle sürümü 8.7 olarak ayarlanmıştır. Hem Gradle'i hem de Gradle Wrapper'ı yükseltmek için bu komutu iki kez çalıştırmanız gerektiğini unutmayın (daha fazla bilgi için Gradle Wrapper'ı yükseltme başlıklı makaleyi inceleyin).

gradle wrapper --gradle-version 8.7

Ancak bu işlem bazı durumlarda başarısız olabilir. Örneğin, AGP'yi yeni güncellediyseniz ve artık mevcut Gradle sürümüyle uyumlu değilse. Bu durumda, gradle/wrapper/gradle-wrapper.properties dosyasında Gradle dağıtım referansını düzenlemeniz gerekir. Aşağıdaki örnekte, gradle-wrapper.properties dosyasında Gradle sürümü 8.7 olarak ayarlanmıştır.

...
distributionUrl = https\://services.gradle.org/distributions/gradle-8.7-bin.zip
...

Android Gradle eklentisi ve Android Studio uyumluluğu

Android Studio derleme sistemi Gradle'i temel alır ve Android Gradle eklentisi (AGP), Android uygulamalarını derlemeye özgü çeşitli özellikler ekler. Aşağıdaki tabloda, Android Studio'nun her sürümü için hangi AGP sürümünün gerekli olduğu listelenmiştir.

Android Studio sürümü Gerekli AGP sürümü
Ladybug | 2024.2.1 3,2-8,7
Koala Özellik Koleksiyonu | 2024.1.2 3,2-8,6
Koala | 2024.1.1 3,2-8,5
Jellyfish | 2023.3.1 3.2-8.4
Iguana | 2023.2.1 3.2-8.3
Kirpi | 2023.1.1 3.2-8.2
Giraffe | 2022.3.1 3.2-8.1
Flamingo | 2022.2.1 3.2-8.0

Eski sürümler

Android Studio sürümü Gerekli AGP sürümü
Electric Eel | 2022.1.1 3.2-7.4
Dolphin | 2021.3.1 3.2-7.3
Chipmunk | 2021.2.1 3,2-7,2
Bumblebee | 2021.1.1 3.2-7.1
Arctic Fox | 2020.3.1 3.1-7.0

Android Gradle eklentisindeki yenilikler hakkında bilgi edinmek için Android Gradle eklentisi sürüm notlarına bakın.

Android API düzeyi için araçların minimum sürümleri

Android Studio ve AGP'nin belirli bir API düzeyini destekleyen minimum sürümleri vardır. Projenizin targetSdk veya compileSdk tarafından gerektirenden daha eski Android Studio ya da AGP sürümlerini kullanmak beklenmedik sorunlara neden olabilir. Android OS'in önizleme sürümlerini hedefleyen projelerde çalışmak için Android Studio ve AGP'nin en son önizleme sürümünü kullanmanızı öneririz. Kararlı sürümün yanı sıra Android Studio'nun önizleme sürümlerini de yükleyebilirsiniz.

Android Studio ve AGP'nin minimum sürümleri şunlardır:

API seviyesi Minimum Android Studio sürümü Minimum AGP sürümü
Baklava Önizlemesi Meerkat | 2024.3.1 8.9.0
35 Koala Feature Drop | 2024.2.1 8.6.0
34 Kirpi | 2023.1.1 8.1.1
33 Flamingo | 2022.2.1 7.2

Sürüm değişiklikleri (Kasım 2020)

Android Gradle eklentisinin (AGP) sürüm numaralandırmasını, temel Gradle derleme aracıyla daha uyumlu olacak şekilde güncelliyoruz.

Önemli değişiklikler şunlardır:

  • AGP artık semantik sürümleme kullanacak ve önemli sürümlerde önemli değişiklikler hedeflenecek.

  • AGP'nin yılda bir kez, Gradle ana sürümüyle uyumlu bir ana sürümü yayınlanır.

  • AGP 4.2'den sonraki sürüm 7.0 olacak ve Gradle 7.x sürümüne yükseltme yapılması gerekecek. AGP'nin her büyük sürümü, temel Gradle aracında büyük bir sürüm yükseltmesi gerektirir.

  • API'lerin desteği yaklaşık bir yıl önceden sonlandırılır ve aynı anda yeni işlevler kullanıma sunulur. Desteği sonlandırılan API'ler, yaklaşık bir yıl sonra sonraki büyük güncelleme sırasında kaldırılacaktır.

Uyumluluk

Android Gradle eklentisi 8.6'nın desteklediği maksimum API düzeyi 34'tür. Diğer uyumluluk bilgileri:

Minimum sürüm Varsayılan sürüm Notlar
"Gradle" 8.9 8.9 "Daha fazla bilgi için Gradle'i güncelleme bölümüne bakın."
SDK Oluşturma Araçları 34.0.0 34.0.0 SDK Oluşturma Araçları'nı yükleyin veya yapılandırın.
NDK Yok 27.0.12077973 "NDK'nın farklı bir sürümünü 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."

Lint davranışında değişiklik

Android Gradle Eklentisi 8.7.0-alpha08'den itibaren, Gradle kullanılarak lint çalıştırıldığında LintError varsa lint analizi görevi bir istisna atar. Bu değişiklik, nadir hataların derleme önbelleğine yerleştirilmesini engeller.

Maalesef bu değişiklik, lint temel dosyalarında gerçek LintError örneklerinin bulunduğu projelerin derlemelerini bozuyor. Hata mesajı, hangi lint kontrollerinin soruna neden olduğuyla ilgili bilgileri içerir. Bazı durumlarda, ilgili kitaplık bağımlılığını güncellemek sorunu çözebilir. Aksi takdirde, kitaplık yazarı sorunu düzeltene kadar sorunlu lint kontrolünü devre dışı bırakabilirsiniz.

Çözülen sorunlar

Android Gradle eklentisi 8.7.0

Çözülen Sorunlar
Android Gradle eklentisi
AGP, kullanıma sunulacak olan API 35'i desteklediğini iddia etmelidir.
AGP 8.5: Daha fazla sayıda "mergeDebugResources" görevi çalıştırılıyor ve derlemeler yavaşlıyor
ndk 27'yi AGP'de varsayılan NDK yapın.
AGP, kullanıma sunulacak olan API 35'i desteklediğini iddia etmelidir.
AGP, kullanıma sunulacak olan API 35'i desteklediğini iddia etmelidir.
Android lint çalıştırma işlemi NoSuchFileException hatasıyla başarısız oldu
BuildType#initWith, son işlem bloğunu kopyalar ancak proguard yapılandırması uygulanmaz
foregroundServiceType etiketleri birleştirilemez
Android lint çalıştırma işlemi NoSuchFileException hatasıyla başarısız oldu
Lint
Lint, ViewGroup olarak kullanılan geçersiz nesneleri kontrol etmelidir
Boş ana makine içeren URI'ler için "android:host eksik"
8.7.0-alpha04 sürümünde kullanıma sunulan lint kontrolleriyle KtAnalysisSessionProvider uyumsuzluğu
Kotlin ile PackageManager.ResolveInfoFlags.of kullanılırken "Yanlış pozitif" WrongConstant

Android Gradle eklentisi 8.7.1

Çözülen Sorunlar
Android Gradle eklentisi
agp dokümanlarında çok fazla TBD var
Lint
AGP 8.6.1: Geriye gidiş - Kotlin'de @LongDef içinde [Int].toLong() kullanıldığında yanlış sabit hata
http veya https intent-filter şemasını ayarlarken "En az bir ana makine belirtilmelidir" lint hatası

Android Gradle eklentisi 8.7.2

Çözülen Sorunlar
Lint
AGP 8.7.0 - Lint False Positive RestrictedApi on NavOptionsBuilder.popUpTo
Shrinker (R8)
[R8 8.6.27] Yöntem uygulaması, "throw null" ile değiştirildi
Varsayılan Android ProGuard dosyaları, R8'in mevcut sürümüyle kullanıldığında uyarı veriyor
MissingStartupProfileItemsDiagnostic, mesaj çok büyükse Gradle istemcisini bellek yetersizliği hatasıyla kilitler

Android Gradle eklentisi 8.7.3

Çözülen Sorunlar
Lint
Linting çalıştırıldığında birçok Analysis API yöntemi uyarısı eksik
Yanlış pozitif lint kontrolü android.permission.SCHEDULE_EXACT_ALARM yalnızca sistem uygulamalarına verilir