Plugin Android Gradle 8.4.0 (Apr 2024)

Plugin Android Gradle 8.4.0 merupakan rilis utama yang menyertakan berbagai peningkatan dan fitur baru.

Kompatibilitas

Level API maksimum yang didukung plugin Android Gradle 8.4 adalah level API 34. Berikut info kompatibilitas lainnya:

Versi minimum Versi default Catatan
Gradle 8.6 8.6 Untuk mempelajari lebih lanjut, lihat mengupdate Gradle.
SDK Build Tools 34.0.0 34.0.0 Instal atau konfigurasi SDK Build Tools.
NDK T/A 26.1.10909125 Instal atau konfigurasi versi lain dari NDK.
JDK 17 17 Untuk mempelajari lebih lanjut, lihat menyetel versi JDK.

Berikut adalah fitur baru di plugin Android Gradle 8.4.

Rilis patch

Berikut adalah daftar rilis patch di Android Studio Jellyfish dan plugin Android Gradle 8.4.

Android Studio Jellyfish | 2023.3.1 Patch 2 dan AGP 8.4.2 (Juni 2024)

Update keamanan penting: Kerentanankeamanan di plugin GitHub yang tersedia di Android Studio Iguana | 2023.2.1 dan yang lebih tinggi dapat mengekspos token akses ke pihak yang tidak berwenang.

Perbaikan: Jetbrains telah menyelesaikan masalah ini di produk platform IntelliJ, dan perbaikan ini kini tersedia di Android Studio Jellyfish | 2023.3.1 Patch 2 (2023.3.1.20).

Jika sudah memiliki build Android Studio di saluran stabil, Anda bisa mendapatkan update dengan mengklik Help > Check for Updates (atau Android Studio > Check for Updates di macOS). Jika tidak, download build stabil terbaru.

Selain itu, jika Anda telah aktif menggunakan fungsi permintaan pull GitHub di IDE, sebaiknya cabut token GitHub yang digunakan oleh plugin. Mengingat plugin dapat menggunakan integrasi OAuth atau token akses pribadi (PAT), periksa keduanya dan cabut jika perlu:

  • Untuk mencabut akses integrasi OAuth, buka Applications > Authorized OAuth Apps dan cabut akses untuk token JetBrains IDE Integration.
  • Untuk mencabut akses PAT, buka Token akses pribadi dan hapus token yang dikeluarkan untuk plugin GitHub. Nama token default adalah IntelliJ IDEA GitHub integration plugin, tetapi Anda mungkin menggunakan nama kustom.

Setelah mencabut akses untuk token, Anda harus menyiapkan plugin lagi agar semua fitur plugin, termasuk operasi Git, dapat berfungsi kembali.

Kami mohon maaf atas ketidaknyamanan ini dan mendesak semua pengguna untuk segera mengupdate guna melindungi kode dan data mereka.

Update minor ini juga mencakup perbaikan bug ini.

Android Studio Jellyfish | 2023.3.1 Patch 1 dan AGP 8.4.1 (Mei 2024)

Update minor ini mencakup perbaikan bug ini.

Class library diciutkan

Mulai Plugin Android Gradle 8.4, jika project library Android diminifikasi, class program yang diciutkan akan dipublikasikan untuk publikasi antar-project. Artinya, jika aplikasi bergantung pada versi subproject library Android yang diciutkan, APK akan menyertakan class library Android yang diciutkan. Anda mungkin perlu menyesuaikan aturan penyimpanan library jika ada class yang tidak ada di APK.

Jika Anda mem-build dan memublikasikan AAR, jar lokal yang bergantung pada library Anda akan disertakan tanpa diciutkan di AAR, yang berarti code shrinker tidak akan berjalan di jar tersebut.

Untuk kembali ke perilaku sebelumnya, tetapkan android.disableMinifyLocalDependenciesForLibraries dalam file gradle.properties dan laporkan bug. Versi AGP mendatang akan menghapus flag ini.

Perbaikan masalah

Plugin Android Gradle 8.4.2

Perbaikan Masalah
Plugin Android Gradle
AGP 8.4 tampaknya merusak download GMD di CI

Plugin Android Gradle 8.4.1

Perbaikan Masalah
Plugin Android Gradle
Mengizinkan penekanan peringatan tentang JDK 21 yang tidak lagi mendukung penargetan java 8
Dexer (D8)
java.lang.VerifyError: Pemverifikasi menolak class
Error konversi format R8 versi baru setelah pengaburan
Build perantara mungkin tidak memiliki konten sintetis global lengkap untuk stub

Plugin Android Gradle 8.4.0

Perbaikan Masalah
Plugin Android Gradle
Memperbaiki pesan error tentang alasan opsi `--release` tidak dapat digunakan untuk JavaCompile
Nonaktifkan penyimpanan MergeSourceSetFolders ke cache menggunakan @DoNotCacheByDefault
Tidak dapat menetapkan versi JaCoCo di AGP 8.2.0
DynamicFeatureBuildType tidak memiliki isDebuggable
Class library yang diminifikasi tidak dipublikasikan dengan benar untuk penggunaan antar-project
Menyediakan Variant#sources API yang mengecualikan file yang dibuat
Model AGP tidak berisi dependensi project java-platform
ExtractAarTransform membuat class.jar yang tidak dapat direproduksi untuk aars yang tidak memiliki class.jar
Mengizinkan konfigurasi sourceInformation dari ComposeOptions
Tidak dapat menemukan kolom: sdk_runtime dalam pesan android.bundle.DeviceSpec
Dukungan untuk compileOnlyApi
R8 gagal pada modul library saat pemrosesan resource dinonaktifkan
Menambahkan kemampuan untuk mengubah nama artefak selama transformasi
Menambahkan output tugas sebagai srcDir sourceSets.androidMain.resources tidak membuat dependensi tugas
AndroidPluginVersion.toString() tidak memiliki angka 0 di awal
Artifacts.add(FileSystemLocation) harus lebih ketat.
AGP 8.3.0-alpha11 menghasilkan APK rilis yang error saat startup dengan android.content.res.Resources$NotFoundException
Tugas penginstalan Plugin Android Gradle 8.2.0 gagal dalam project yang menggunakan fitur dinamis
Kompilasi AIDL gagal dengan IndexOutOfBoundsException: Indeks 0 di luar batas untuk panjang 0
Masalah penanganan input inkremental MergeJavaResourcesTask
AGP 8.3.0-alpha02 bergantung pada library dengan kerentanan keamanan yang diketahui
Template aktivitas yang dipilih memerlukan project dengan dependensi androidx.*
Upgrade Assistant AGP salah menghapus consumerProguardFiles dari modul
Upgrade Assistant AGP Memuat Tanpa Batas
SourceDirectories#static tidak boleh bergantung pada tugas GenerateBuildConfig
Pratinjau Compose tidak dapat me-resolve class dari dependensi transitif
AGP 8.3 merusak zipApksFor Task
Artefak Desktop AndroidX yang dikemas dalam APK Android
Lint
GradleModelMocker framework pengujian lint tidak mengizinkan penetapan versi library
Lint K2 UAST: UCallableReferenceExpression melaporkan qualifierType yang salah
Lint positif palsu dengan useK2Uast=true dengan fungsi yang kelebihan beban
[BuildTool/Lint] Properti konstruktor ChecksSdkIntAtLeast
Integrasi Lint
Lint tidak dapat membedakan dependensi KMP