Plugin Android Gradle 8.2.0 (Nov 2023)

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

Kompatibilitas

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

Versi minimum Versi default Catatan
Gradle 8.2 8.2 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 25.1.8937393 Instal atau konfigurasi versi lain dari NDK.
JDK 17 17 Untuk mempelajari lebih lanjut, lihat menyetel versi JDK.

Makro baru untuk menentukan jalur JDK

#GRADLE_LOCAL_JAVA_HOME adalah makro baru yang dapat Anda gunakan untuk menentukan jalur JDK. Dengan makro baru tersebut, penentuan jalur beranda Java yang digunakan untuk eksekusi daemon Gradle (proses latar belakang) untuk project Anda menjadi lebih aman dan mudah. Pemilihan jalur disimpan di kolom java.home dalam file .gradle/config.properties. Tetapkan kolom ini melalui setelan JDK Gradle di Android Studio: File (atau Android Studio di macOS) > Settings > Build, Execution, Deployment > Build Tools > Gradle.

Project baru akan menggunakan #GRADLE_LOCAL_JAVA_HOME secara default. Project yang sudah ada akan otomatis dimigrasikan ke makro baru setelah sinkronisasi berhasil, kecuali Anda sudah menggunakan makro seperti #JAVA_HOME.

Manfaat utama makro baru adalah sebagai berikut:

  • Anda dapat mengubah jalur JDK secara manual untuk memicu sinkronisasi tanpa harus membuka project terlebih dahulu.
  • Error terkait versi JDK project dan Gradle yang tidak kompatibel menjadi lebih sedikit karena ada satu sumber tepercaya untuk pemilihan JDK Gradle Anda.

Perbaikan masalah

Plugin Android Gradle 8.2.0

Perbaikan Masalah
Plugin Android Gradle
Jenis sumber kustom harus membuat set sumber multi-ragam
Pemeriksaan versi SDK tidak menangani pengguna ekstensi SDK
DependenciesInfoBuilder memerlukan update API + dokumen
DexingNoClasspathTransform (minSdk >= 24) dengan target Java 11 gagal karena anggota nest tidak ada
DslExtension.Builder.extendProjectWith() tidak berfungsi seperti yang dijelaskan di Groovy
Menambahkan VariantSelector.withFlavor API yang tidak menggunakan kotlin.Pair
AndroidLintAnalysisTask (:lintAnalyzeExternalRelease) memiliki cache yang tidak ditemukan karena `proguard.txt` telah berubah
Manifes gabungan aplikasi berisi atribut extractNativeLibs dan useEmbeddedDex dari dependensi
AIDL gagal dengan build tools 33.0.0
AGP: Mengekspos jalur ke alat AIDL dan file AIDL framework sebagai API publik
Permintaan: membiarkan IDE menawarkan perbaikan untuk "PermittedSubclasses requires ASM9"
Menargetkan bytecode 17 saat mengompilasi AGP
Menghapus VariantManager.getModifiedName
AndroidTest.packaging.jniLibs.keepDebugSymbols tidak memengaruhi paket androidTest
Tugas uji instrumentasi GMD mengalami error dan jika dicoba lagi akan gagal
generateLocaleConfig di agp 8.1.0 menggunakan pengurutan non-deterministik, merusak build yang dapat direproduksi
ProcessApplicationManifest.navigationJsons memiliki file dengan jalur absolut
Mengakses GradleBuildProject.Builder melalui AnalyticsConfiguratorService tidak diizinkan setelah AnalyticsService dibuat
AndroidTest.packaging.jniLibs.keepDebugSymbols tidak memengaruhi paket androidTest
Kompilasi diizinkan untuk nilai warna ilegal
"ReplaceWith" yang salah untuk VariantBuilder
Gradle 8.1 merusak cache konfigurasi karena .gradle/.android/analytics.settings
Pesan penghentian penggunaan tidak menggunakan `ReplaceWith`
Mengekspos cara mendapatkan versi NDK default
Plugin Android Gradle memerlukan Java 17 agar dapat dijalankan.
Inkompatibilitas ASM Transform dan toAppend()
Memperbaiki LintErrors saat menjalankan lint dengan K2 UAST melalui Gradle pada project KMP
Dukungan untuk tingkat Varian missingDimensionStrategy, dan mungkin jenis/ragam build matchingFallback
`android.injected.studio.version` dihapus di Android Studio Giraffe
Menambahkan kemampuan untuk menonaktifkan AndroidXDependencyCheck
generateLocaleConfig di agp 8.1.0 menggunakan pengurutan non-deterministik, merusak build yang dapat direproduksi
Mengiklankan persyaratan versi R8/D8 dalam metadata AAR (mis. untuk coreLibraryDesugaring dan API baru yang tidak sesuai)
Peringatan sinkronisasi: "GradleBuildProject.Builder should not be accessed through AnalyticsConfiguratorService after AnalyticsService is created"
Update ke Gradle 8.2 milestone atau RC
Tidak dapat mengakses 'java.lang.Comparable'
androidResources tidak tersedia di modul library android
Eksekusi gagal untuk tugas ':app:mergeReleaseClasses' setelah Mengupdate AGP dari 8.0.2 ke 8.1.0
Gradle 8.1 merusak cache konfigurasi karena .gradle/.android/analytics.settings
[AGP 8.1.0] Pengujian ./gradlew gagal dengan pesan "Unable to find manifest output" jika splits.abi.isEnable dan testOptions.unitTests.isIncludeAndroidResources bernilai benar (true)
Android Studio Giraffe tidak mematuhi versionCodeOverride dengan AGP 8.1
AGP 8.1.0 meng-uninstal aplikasi setelah menjalankan uji instrumentasi - 7.4.2 tidak melakukan uninstal
Mengubah APK menyebabkan error dengan ListingFileRedirectTask
REGRESI HEDGEHOG: Tombol jalankan tertunda selama beberapa detik (Membuat spesifikasi)
Dexer (D8)
Mengaktifkan catatan native dan class tertutup saat melakukan dexing untuk min-api 34 dan yang lebih baru
Lint
Pemeriksaan lint pembuatan instance tidak menangani AppComponentFactory dengan baik
Lint 8.2.0 alfa masih tidak mendukung impor fungsi level teratas di Kotlin
Menambahkan opsi untuk tidak menyertakan nomor baris dan kolom dalam dasar pengukuran lint
Menambahkan opsi untuk tidak menyertakan nomor baris dan kolom dalam dasar pengukuran lint
Pengujian lint tidak mendukung fitur bahasa Java 17
Bumblebee 2021.1.1 Patch 1 mengatakan versi lama (20030203.000550) commons-io lebih baru dari 2.11.0.
Lint 8.2.0 alfa masih tidak mendukung impor fungsi level teratas di Kotlin
Bumblebee 2021.1.1 Patch 1 mengatakan versi lama (20030203.000550) commons-io lebih baru dari 2.11.0.
Android Studio salah menandai versi yang ditentukan sebagai versi usang.
Lint mengabaikan masalah UseValueOf saat menggunakan K2 UAST
Masalah tak terduga dari project lain yang ditandai oleh Android Lint
Android Lint gagal pada library KMP dengan 'variantInputs.name' doesn't have a configured value.`
Integrasi Lint
Error lint DuplicatePlatformClasses dari dependensi testImplementation
Penyingkat (R8)
java.lang.VerifyError: Pemverifikasi menolak class
Build macet di :minifyReleaseWithR8 saat menggunakan library Apache POI
Kotlin 1.9 menyebabkan lambda Kotlin dihancurkan oleh R8 jika nullcheck dihilangkan

Plugin Android Gradle 8.2.1

Perbaikan Masalah
Plugin Android Gradle
Jangan menjalankan tugas dexing pada class subproject jika sudah di-dex melalui transformasi artefak
Plugin Android Gradle gagal dengan JavaVersion.VERSION_11 dan OpenJDK 21 ea
Dexer (D8)
Data Desugar untuk Android U
Penyingkat (R8)
R8 menghasilkan dex rusak yang mengakibatkan pengecualian cast class saat runtime
R8 menyebabkan perubahan antarmuka menjadi antarmuka yang tidak dapat diakses
Error R8 Flurry SDK dengan AGP 8.2.0
Android - R8 menyebabkan subclass LinearLayoutManager tidak bekerja
ClassCastException di R8 saat pengemasan ulang aktif, serta penyingkatan, obfuscation, dan pengoptimalan dinonaktifkan
R8 macet di BridgeAnalyzer.analyzeMethod
R8 v8.2.33, "java.lang.VerifyError: Jenis buruk pada tumpukan operand" error saat runtime setelah upgrade

Plugin Android Gradle 8.2.2

Perbaikan Masalah
Plugin Android Gradle
Tidak dapat menetapkan versi JaCoCo di AGP 8.2.0
Dexer (D8)
[desugared library] Library desugaring versi 2.1 tidak kompatibel dengan R8 versi sebelumnya
Pengoptimalan berjalan bahkan hanya dengan D8?
Penyingkat (R8)
[R8 8.3.21] R8 8.3.21 lebih besar 1,57 MB dari R8 8.1.56
class.getInterfaces() menampilkan kosong