Android Gradle Eklentisi 8.4.0 (Nisan 2024)

Android Gradle eklentisi 8.4.0, çeşitli yeni özellikler ve iyileştirmeler içeren önemli bir sürümdür.

Uyumluluk

Android Gradle eklentisi 8.4'ü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,6 8,6 Daha fazla bilgi için Gradle'i güncelleme başlıklı makaleyi inceleyin.
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 26.1.10909125 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 başlıklı makaleyi inceleyin.

Aşağıda, Android Gradle eklentisi 8.4'teki yeni özellikler verilmiştir.

Yama sürümleri

Aşağıda, Android Studio Jellyfish ve Android Gradle eklentisi 8.4'teki yama sürümlerinin listesi verilmiştir.

Android Studio Jellyfish | 2023.3.1 Yama 2 ve AGP 8.4.2 (Haziran 2024)

Önemli güvenlik güncellemesi: Android Studio Iguana | 2023.2.1 ve sonraki sürümlerde bulunan GitHub eklentisinde güvenlik açığı, erişim jetonlarının yetkisiz taraflara gösterilmesine neden olabilir.

Düzeltme: Jetbrains, IntelliJ platform ürünlerindeki sorunu çözdü. Düzeltme, Android Studio Jellyfish | 2023.3.1 Yama 2 (2023.3.1.20) sürümünde kullanıma sunuldu.

Kararlı kanalda Android Studio derlemeniz varsa Yardım > Güncellemeleri Denetle'yi (veya macOS'te Android Studio > Güncellemeleri Denetle'yi) tıklayarak güncellemeyi alabilirsiniz. Aksi takdirde, en son kararlı sürümü indirin.

Ayrıca, IDE'de GitHub çekme isteği işlevini etkin bir şekilde kullandıysanız eklenti tarafından kullanılan tüm GitHub jetonlarını iptal etmenizi önemle tavsiye ederiz. Eklentinin OAuth entegrasyonu veya kişisel erişim jetonları (PAT'ler) kullanabileceğinden lütfen ikisini de kontrol edin ve gerektiğinde iptal edin:

  • OAuth entegrasyonunun erişimini iptal etmek için Uygulamalar > Yetkili OAuth Uygulamaları'na gidin ve JetBrains IDE Entegrasyonu jetonunun erişimini iptal edin.
  • PAT'lerin erişimini iptal etmek için Kişisel erişim jetonları'na gidin ve GitHub eklentisi için verilen jetonu silin. Varsayılan jeton adı IntelliJ IDEA GitHub entegrasyon eklentisi'dir ancak özel bir ad kullanıyor olabilirsiniz.

Jetonların erişimini iptal ettikten sonra, Git işlemleri dahil olmak üzere tüm eklenti özelliklerinin tekrar çalışmasını sağlamak için eklentiyi tekrar ayarlamanız gerekir.

Bu durumun neden olduğu aksaklıklar için özür diler, tüm kullanıcıları kodlarını ve verilerini korumak için hemen güncelleme yapmaları konusunda uyarırız.

Bu küçük güncelleme, bu hata düzeltmelerini de içerir.

Android Studio Jellyfish | 2023.3.1 Yama 1 ve AGP 8.4.1 (Mayıs 2024)

Bu küçük güncelleme, bu hata düzeltmelerini içerir.

Kitaplık sınıfları küçültüldü

Android Gradle Eklentisi 8.4'ten itibaren, bir Android kitaplık projesi küçültülürse projeler arası yayınlama için küçültülmüş program sınıfları yayınlanır. Yani bir uygulama, Android kitaplığı alt projelerinin sıkıştırılmış sürümüne bağlıysa APK, sıkıştırılmış Android kitaplığı sınıflarını içerir. APK'da eksik sınıflar varsa kitaplık saklama kurallarını düzenlemeniz gerekebilir.

Bir AAR oluşturup yayınlıyorsanız kitaplığınızın bağlı olduğu yerel jar'lar, sıkıştırılmadan AAR'a dahil edilir. Bu, kod sıkıştırıcının bu jar'larda çalışmadığı anlamına gelir.

Önceki davranışa dönmek için gradle.properties dosyasında android.disableMinifyLocalDependenciesForLibraries değerini ayarlayın ve bir hata kaydı gönderin. AGP'nin gelecekteki sürümlerinde bu işaret kaldırılacaktır.

Çözülen sorunlar

Android Gradle eklentisi 8.4.0

Çözülen Sorunlar
Android Gradle eklentisi
JavaCompile için `--release` seçeneğinin neden kullanılamadığını belirten hata mesajı iyileştirildi
@DoNotCacheByDefault kullanarak MergeSourceSetFolders işlevinin önbelleğe alınmasını devre dışı bırakma
AGP 8.2.0'da JaCoCo sürümü ayarlanamıyor
DynamicFeatureBuildType isDebuggable özelliği eksik
Projeler arası kullanım için sıkıştırılmış kitaplık sınıfları doğru şekilde yayınlanmıyor
Oluşturulan dosyaları hariç tutan Variant#sources API'si sağlayın
AGP modelleri, java platformu proje bağımlılıkları içermez
ExtractAarTransform, classes.jar dosyası olmayan aars için yeniden üretilemeyen classes.jar dosyaları oluşturuyor
ComposeOptions'tan sourceInformation'ın yapılandırılmasına izin ver
android.bundle.DeviceSpec mesajında sdk_runtime alanı bulunamadı
compileOnlyApi için destek
Kaynak işleme devre dışı bırakıldığında R8, kitaplık modülünde başarısız olur
Dönüşüm sırasında yapı adını değiştirme özelliği eklendi
Görev çıktısını sourceSets.androidMain.resources kaynağının srcDir olarak eklemek görev bağımlılıkları oluşturmaz
AndroidPluginVersion.toString() işlevinde baştaki 0'lar eksik
Artifacts.add(FileSystemLocation) daha kısıtlayıcı olmalıdır.
AGP 8.3.0-alpha11, android.content.res.Resources$NotFoundException hatasıyla başlangıçta kilitlenen bir sürüm APK'sı oluşturuyor
Android Gradle eklentisi 8.2.0'ın yükleme görevi, dinamik özellikler kullanan projelerde başarısız oluyor
AIDL derlemesi, IndexOutOfBoundsException hatasıyla başarısız oluyor: 0 uzunluğu için 0 dizini sınırların dışında
MergeJavaResourcesTask artımlı girişleri işleme sorunu
AGP 8.3.0-alpha02, bilinen güvenlik açıklarına sahip kitaplıklara bağlı
Seçilen etkinlik şablonu, androidx.* bağımlılıkları olan bir proje gerektiriyor
AGP Yükseltme Asistanı, consumerProguardFiles dosyasını modülden yanlışlıkla kaldırıyor
AGP Yükseltme Asistanı Sonsuz Yükleniyor
SourceDirectories#static, GenerateBuildConfig görevine bağlı olmamalıdır
Oluşturma önizlemesi, geçişli bağımlılıktaki sınıfları çözemiyor
AGP 8.3, zipApksFor Görevi'ni bozuyor
Android APK'sına paketlenmiş AndroidX masaüstü yapıları
Lint
Lint test çerçevesinin GradleModelMocker'ı, kitaplık sürümünün ayarlanmasına izin vermiyor
Lint K2 UAST: UCallableReferenceExpression yanlış qualifierType değerini bildiriyor
Aşırı yüklenen işlevlerle useK2Uast=true kullanıldığında lint yanlış pozitif
[BuildTool/Lint] ChecksSdkIntAtLeast constructor property
Lint Entegrasyonu
Lint, KMP bağımlılığının anlamını netleştiremiyor

Android Gradle eklentisi 8.4.1

Çözülen Sorunlar
Android Gradle eklentisi
JDK 21'in Java 8 hedefleme desteğini kullanımdan kaldırmasıyla ilgili uyarının engellenmesine izin verme
Dexer (D8)
java.lang.VerifyError: Verifier rejected class
Kod karartma işleminden sonra yeni sürüm R8 biçimi dönüştürme hatası
Ara derlemelerde, taslaklar için tam küresel sentetik içerik olmayabilir

Android Gradle eklentisi 8.4.2

Çözülen Sorunlar
Android Gradle eklentisi
AGP 8.4, CI'de GMD indirmelerini bozuyor