Plugin Android Gradle 9.3 adalah rilis minor yang menyertakan berbagai peningkatan
dan fitur baru.
Kompatibilitas
Level API maksimum yang didukung plugin Android Gradle 9.3 adalah level API 37.
Berikut info kompatibilitas lainnya:
Tugas Gradle R8 Configuration Analyzer mandiri
Plugin Android Gradle 9.3 memperkenalkan tugas Gradle khusus untuk menjalankan R8
Configuration Analyzer secara terpisah. R8 Configuration Analyzer membantu Anda mengoptimalkan aturan penyingkatan kode dan obfuscation aplikasi.
./gradlew :app:analyzeReleaseR8Config
Tugas :app:analyzeReleaseR8Config menghasilkan laporan tanpa menyelesaikan pipeline kompilasi APK atau Bundle. Hal ini memberikan feedback loop yang lebih pendek,
yang mempercepat iterasi developer saat menyempurnakan aturan penyimpanan. Atau,
Anda dapat membuat laporan secara otomatis dengan menjalankan build rilis R8 (seperti
assembleRelease atau bundleRelease).
Untuk mengetahui informasi selengkapnya, lihat Menjalankan tugas Gradle mandiri untuk membuat laporan.
Perbaikan masalah
Plugin Android Gradle 9.3.3
| Perbaikan Masalah |
| Plugin Android Gradle |
|
DSL pengoptimalan baru { enable = true } AGP 9.3.0 tidak menetapkan isMinifyEnabled di objek ApplicationVariant
|
|
| Dexer (D8) |
|
D8 9.2.14 ~38% lebih lambat daripada 8.13.6 dalam `mergeProjectDexDebug` pada input/output yang identik
|
|
| Penyingkat (R8) |
|
Mode debug D8: ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 31 — regresi antara R8 8.8.34 dan 8.9.27
|
|
VerifyError: Outliner memperluas wilayah try-catch secara tidak benar, sehingga menyebabkan register tidak diinisialisasi
|
|
R8 menulis file `.kotlin_module` dengan `:` dalam namanya, sehingga menghasilkan nama file yang tidak valid di Windows
|
|
Non-determinisme build R8: input yang identik menghasilkan dex/pemetaan yang berbeda (regresi dari "Retain Assume instructions in LIR")
|
|
Pemetaan duplikat dengan R8 9.1
|
|
AGP terkadang menghasilkan file dex yang gagal diverifikasi dan menyebabkan aplikasi error saat diluncurkan
|
|
NullPointerException: Tidak dapat memanggil Position.getOutermostCaller() karena entryPosition adalah null
|
|
Konsumsi memori per aturan yang tinggi
|
|
R8: VerifyError di Android 4.4
|
|
Plugin Android Gradle 9.3.2
| Perbaikan Masalah |
| Lint |
|
Lint AGP 9.3 error di JDK 17 — NoSuchMethodError: java.util.List.removeLast() di JavaDocParser intellij-core yang di-bundle
|
|
Plugin Android Gradle 9.3.1
| Perbaikan Masalah |
|
Tidak ada masalah publik yang ditandai sebagai telah diperbaiki di AGP 9.3.1
|
Plugin Android Gradle 9.3.0-rc02
| Perbaikan Masalah |
|
Tidak ada masalah publik yang ditandai sebagai telah diperbaiki di AGP 9.3.0-rc02
|
Plugin Android Gradle 9.3.0-rc01
| Perbaikan Masalah |
|
Tidak ada masalah publik yang ditandai sebagai telah diperbaiki di AGP 9.3.0-rc01
|
Plugin Android Gradle 9.3.0-alpha12
| Perbaikan Masalah |
| Plugin Android Gradle |
|
Kegagalan Build: Kebocoran handle file pada classes.jar di compile_library_classes_jar mencegah pembangunan ulang di Windows hingga IDE dimulai ulang
|
|
| Lint |
|
Lint memperlakukan library Java yang diimpor sebagai project Android, mengabaikan versi SDK kompilasi
|
|
Plugin Android Gradle 9.3.0-alpha11
| Perbaikan Masalah |
|
Tidak ada masalah publik yang ditandai sebagai telah diperbaiki di AGP 9.3.0-alpha11
|
Plugin Android Gradle 9.3.0-alpha10
| Perbaikan Masalah |
|
Tidak ada masalah publik yang ditandai sebagai telah diperbaiki di AGP 9.3.0-alpha10
|
Plugin Android Gradle 9.3.0-alpha09
| Perbaikan Masalah |
|
Tidak ada masalah publik yang ditandai sebagai telah diperbaiki di AGP 9.3.0-alpha09
|
Plugin Android Gradle 9.3.0-alpha08
| Perbaikan Masalah |
|
Tidak ada masalah publik yang ditandai sebagai telah diperbaiki di AGP 9.3.0-alpha08
|
Plugin Android Gradle 9.3.0-alpha07
| Perbaikan Masalah |
|
Tidak ada masalah publik yang ditandai sebagai telah diperbaiki di AGP 9.3.0-alpha07
|
Plugin Android Gradle 9.3.0-alpha06
| Perbaikan Masalah |
| Plugin Android Gradle |
|
JavaDocGenerationTask harus menggunakan pekerja
|
|
Plugin Android Gradle 9.3.0-alpha05
| Perbaikan Masalah |
| Penyingkat (R8) |
|
Pemetaan obfuscation L8 tidak disertakan dalam app mapping.txt
|
|
Plugin Android Gradle 9.3.0-alpha04
| Perbaikan Masalah |
| Plugin Android Gradle |
|
Set sumber keepRules KMP diabaikan tanpa it.consumerKeepRules.publish = true
|
|
Plugin Android Gradle 9.3.0-alpha03
| Perbaikan Masalah |
| Plugin Android Gradle |
|
java.lang.ClassNotFoundException: Didn't find class "com.android.tools.r8.RecordTag" setelah mengupgrade gradle ke 9.2.0
|
|
| Lint |
|
Error Lint saat penyingkatan resource dinonaktifkan
|
|
Plugin Android Gradle 9.3.0-alpha02
| Perbaikan Masalah |
| Plugin Android Gradle |
|
Permintaan fitur: Menambahkan dukungan native_libs_merge_blame_file ke Plugin Android Gradle
|
|
| Lint |
|
Tidak ada tanda petik terbalik dalam pesan masalah AnnotationDetector
|
|
Error Lint saat penyingkatan resource dinonaktifkan
|
|
Plugin Android Gradle 9.3.0-alpha01
| Perbaikan Masalah |
| Plugin Android Gradle |
|
Masalah terkait kode versi yang dibuat secara otomatis
|
|
AGP: Berpindah dari Project sebagai notasi dependensi
|
|
| Lint |
|
Positif palsu Lint dengan UseKtx
|
|
Plugin Android Gradle 9.3.0
| Perbaikan Masalah |
|
Tidak ada masalah publik yang ditandai sebagai telah diperbaiki di AGP 9.3.0
|
DSL pengoptimalan yang diperbarui untuk mengonfigurasi aturan keep R8
Memperkenalkan DSL pengoptimalan yang diperbarui untuk mengonfigurasi aturan keep untuk pengoptimalan R8, yang didukung oleh pengujian modul aplikasi dan modul library. Untuk mengonfigurasi
pengoptimalan dengan DSL yang diupdate, gunakan blok optimization baru. Untuk aplikasi, konfigurasikan blok optimization dalam jenis build (seperti release atau debug) dalam skrip build level aplikasi. DSL pengoptimalan yang diupdate membuat konfigurasi R8
lebih sederhana:
- Mengaktifkan pengoptimalan akan mengaktifkan pengoptimalan kode dan penyingkatan resource yang dioptimalkan.
- Anda tidak perlu lagi menentukan file aturan penyimpanan Android default.
Perhatikan bahwa DSL lama terus didukung.
Pengenalan set sumber untuk menentukan aturan penyimpanan
Tempatkan aturan keep di set sumber src/<variant>/keepRules/, dengan
akhiran file .keep. Set sumber untuk aturan penyimpanan didukung oleh DSL pengoptimalan yang diperbarui dan DSL lama. Penggunaan set sumber untuk aturan keep didukung di modul aplikasi, modul library, dan sebagai cara untuk menentukan aturan konsumen di modul Kotlin Multiplatform (KMP).