Plugin Android Gradle 9.2.0 (April 2026)

Plugin Android Gradle 9.2 adalah rilis minor yang menyertakan berbagai peningkatan dan fitur baru.

Kompatibilitas

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

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

Laporan cakupan dan pengujian terpadu

AGP 9.2.0-alpha07 memperkenalkan tugas untuk membuat dasbor HTML yang menggabungkan hasil pengujian dan cakupan dari berbagai jenis pengujian (unit dan instrumentasi), modul, dan varian build, sehingga memberikan ringkasan komprehensif dalam satu dasbor. Untuk mengetahui informasi selengkapnya, lihat Membuat laporan cakupan kode terpadu dan Melihat laporan pengujian terpadu.

Perubahan R8

Perubahan R8 berikut disertakan dalam AGP 9.2.0.

Semantik -keepattributes yang lebih ketat untuk menyimpan anotasi runtime yang tidak terlihat

Anotasi runtime yang tidak terlihat tidak dapat dibaca saat runtime. Oleh karena itu, D8 akan menghapus anotasi runtime yang tidak terlihat tanpa syarat, tanpa opsi untuk mengubahnya.

Untuk kompatibilitas dengan ProGuard, R8 mendukung output anotasi runtime yang tidak terlihat. Namun, saat mengompilasi ke DEX, anotasi runtime yang tidak terlihat umumnya tidak boleh dipertahankan. Namun, praktik umum untuk menyertakan aturan praktis -keepattributes *Annotation* (baik secara langsung maupun tidak langsung dari aturan penyimpanan konsumen) agar R8 menyimpan anotasi runtime yang terlihat. Sayangnya, hal ini juga akan menyimpan anotasi runtime yang tidak terlihat.

Untuk mengurangi masalah ini dan lebih cocok dengan perilaku D8, pola -keepattributes dengan karakter pengganti tidak lagi cocok dengan RuntimeInvisibleAnnotations, RuntimeInvisibleParameterAnnotations, dan RuntimeInvisibleTypeAnnotations. Akibatnya, anotasi runtime yang tidak terlihat hanya akan disimpan jika nama atribut disebutkan secara eksplisit tanpa karakter pengganti.

Tidak ada aturan berikut yang akan menyimpan anotasi runtime yang tidak terlihat:

-keepattributes *
-keepattributes *Annotation*
-keepattributes *Invisible*

Untuk menyimpan anotasi runtime yang tidak terlihat, gunakan aturan berikut:

-keepattributes RuntimeInvisibleAnnotations,
                RuntimeInvisibleParameterAnnotations,
                RuntimeInvisibleTypeAnnotations

Dukungan untuk nama yang dinegasikan dalam aturan anggota

Bahasa konfigurasi telah diperluas sehingga Anda kini dapat mencocokkan pola nama anggota yang dinegasikan.

Misalnya, untuk mencocokkan semua metode yang tidak diakhiri dengan "ForTesting", gunakan aturan berikut:

-keepclassmembers class com.example.MyClass {
  *** !*ForTesting(...);
}

Pola nama anggota juga dapat dinegasikan dalam prasyarat aturan -if. Jika pola nama anggota yang dinegasikan berisi karakter pengganti, karakter pengganti tersebut tidak dapat direferensikan kembali dalam aturan konsekuen -if.

Perbaikan masalah

Plugin Android Gradle 9.2.1

Perbaikan Masalah
Plugin Android Gradle
java.lang.ClassNotFoundException: Didn't find class "com.android.tools.r8.RecordTag" after upgrading gradle to 9.2.0

Plugin Android Gradle 9.2.0

Perbaikan Masalah
Plugin Android Gradle
Warn users if they have commonTest but forget withHostTestBuilder
[fused lib - public] OkHttp includes sources
Cannot run androidDeviceTest with manifest placeholders in library (AGP 9.0.0 with com.android.kotlin.multiplatform.library plugin)
AGP should warn if user has src/androidDeviceTest/java with java disabled
AGP 9.0 No androidComponents.onVariant equivalent for applicationVariants.all.mergeAssetsProvider
`*.xml.flat` files contain absolute file paths
R8D8ThreadPoolBuildService not registered
JdkImageTransform failure with JDK 26
Automatically encode minAgpVersion in the AAR metadata in AGP 10.0
Renaming APK using new AGP DSL
Error when accessing (but not evaluating) bootClasspath IllegalStateException: targetCompatibility is not yet finalized
keepRules sourceset not working for libraries
Embed CC compatibility declaration in AGP
Update Kotlin Gradle plugin dependency to 2.3.10
Allow higher compileSdk for tests than main
Lint
Lint typo in message
Truncated context window in Lint SARIF reports due to stuck offset pointer in `SarifReporter.kt`
Lint Gradle client is missing a critical feature making it unreliable at best
Lint error when resource shrinking is disabled
AGP 9 Lint reports WrongConstant when using nested IntDef constants
Lint error when resource shrinking is disabled
Integrasi Lint
Android Lint fails with custom lint checks compiled to Java 21 bytecode
Lint Gradle tasks ignore --quiet flag
Penyingkat (R8)
Targeting Java 11 seems to break d8