Plugin Android Gradle 8.0.0 merupakan rilis utama yang menyertakan berbagai peningkatan dan fitur baru.
Kompatibilitas
Versi minimum | Versi default | Catatan | |
---|---|---|---|
Gradle | 8.0 | 8.0 | Untuk mempelajari lebih lanjut, lihat mengupdate Gradle. |
SDK Build Tools | 30.0.3 | 30.0.3 | 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. |
Rilis patch
Berikut adalah daftar rilis patch untuk Plugin Android Gradle 8.0.
Plugin Android Gradle 8.0.2 (Mei 2023)
Untuk daftar bug yang diperbaiki di AGP 8.0.2, lihat Masalah yang ditutup di Android Studio 2022.2.1.
Plugin Android Gradle 8.0.1 (Mei 2023)
Update minor ini mencakup perbaikan bug berikut:
Perbaikan masalah | |
---|---|
Error: "No VersionRequirement with the given id in the table" setelah mengupgrade AGP 7.2.2 -> 7.4.0
|
|
R8 NullPointerException pada markTypeAsLive AGP 7.4.1
|
|
[R8 4.0.53] Kegagalan verifikasi class berat di Android 11
|
Perubahan yang menyebabkan gangguan: namespace diperlukan dalam skrip build level modul
Anda harus menetapkan namespace dalam file build.gradle.kts
level modul, bukan
daripada file manifes. Anda dapat mulai menggunakan properti DSL namespace
mulai AGP 7.3. Untuk mempelajari lebih lanjut, lihat
Menetapkan namespace.
Saat bermigrasi ke DSL namespace, perhatikan masalah berikut:
- Versi AGP sebelumnya menyimpulkan namespace pengujian dari namespace utama, atau
ID aplikasi, terkadang tidak benar. Upgrade Assistant AGP memblokir
upgrade jika menemukan bahwa namespace dan namespace pengujian utama project Anda
hal yang sama. Jika upgrade diblokir, Anda perlu mengubah
testNamespace
secara manual dan memodifikasi kode sumber Anda sebagaimana mestinya. - Setelah Anda mengubah namespace pengujian, kode Anda mungkin dikompilasi,
tetapi pengujian berinstrumen gagal saat runtime. Hal ini dapat terjadi jika
kode sumber uji instrumentasi merujuk ke sumber daya yang didefinisikan dalam
androidTest
dan sumber aplikasi.
Untuk informasi selengkapnya, lihat masalah #191813691 komentar #19.
Perubahan yang dapat menyebabkan gangguan: nilai default opsi build
Mulai AGP 8.0, nilai default untuk flag ini telah berubah untuk meningkatkan performa build. Untuk mendapatkan bantuan dalam menyesuaikan kode Anda guna mendukung beberapa perubahan ini, gunakan Upgrade Assistant AGP (Tools > AGP Upgrade Assistant). Upgrade Assistant memandu Anda dalam memperbarui kode untuk mengakomodasi perilaku baru atau menetapkan tanda untuk mempertahankan perilaku sebelumnya.
Flag | Nilai default baru | Nilai default sebelumnya | Catatan |
---|---|---|---|
android.defaults.buildfeatures.buildconfig |
false |
true |
AGP 8.0 tidak menghasilkan BuildConfig secara default. Anda perlu
untuk menentukan opsi ini menggunakan DSL dalam project yang membutuhkannya. |
android.defaults.buildfeatures.aidl |
false |
true |
AGP 8.0 tidak mengaktifkan dukungan AIDL secara default. Anda harus menentukan opsi ini menggunakan DSL dalam proyek yang membutuhkan. Flag ini akan dihapus di AGP 9.0. |
android.defaults.buildfeatures.renderscript |
false |
true |
AGP 8.0 tidak mengaktifkan dukungan RenderScript secara default. Anda harus menentukan opsi ini menggunakan DSL dalam project yang membutuhkannya. Ini flag ini rencananya akan dihapus di AGP 9.0. |
android.nonFinalResIds |
true |
false |
AGP 8.0 menghasilkan class R dengan kolom non-final dengan
secara default. |
android.nonTransitiveRClass |
true |
false |
AGP 8.0 menghasilkan class R untuk resource yang ditentukan di
modul saat ini saja. |
android.enableR8.fullMode |
true |
false |
AGP 8.0 mengaktifkan mode penuh R8 secara default. Untuk mengetahui detail selengkapnya, lihat Mode lengkap R8. |
Perubahan yang dapat menyebabkan gangguan: nilai opsi build yang diterapkan
Mulai dari AGP 8.0, Anda tidak dapat lagi mengubah nilai untuk flag ini. Jika
Anda menentukannya dalam file gradle.properties
, nilai akan diabaikan dan AGP
akan mencetak peringatan.
Flag | Nilai yang diterapkan | Catatan |
---|---|---|
android.dependencyResolutionAtConfigurationTime.warn |
true |
AGP 8.0 memunculkan peringatan jika mendeteksi resolusi konfigurasi selama fase konfigurasi karena berdampak negatif pada waktu konfigurasi Gradle. |
android.r8.failOnMissingClasses |
true |
AGP 8.0 gagal membuat build yang menggunakan R8 jika ada class yang hilang untuk
memastikan pengoptimalan DEX yang lebih baik. Untuk mengatasinya, Anda perlu menambahkan
library yang hilang atau -dontwarn aturan keep. Untuk detail selengkapnya,
lihat
Tidak ada peringatan class di penyingkat R8. |
android.testConfig.useRelativePath |
true |
Saat adanya dukungan untuk penggunaan resource, aset, dan manifes Android dalam
pengujian unit diaktifkan, AGP 8.0 akan menghasilkan
File test_config.properties yang hanya berisi file relatif
. Hal ini memastikan bahwa pengujian unit Android selalu bisa menggunakan Gradle
build cache tersebut. |
android.useNewJarCreator |
true |
AGP menggunakan library Zipflinger saat membuat file JAR untuk meningkatkan performa build. |
android.bundletool.includeRepositoriesInDependencyReport |
true |
Saat menambahkan informasi dependensi SDK di AAB dan APK diaktifkan, AGP 8.0 juga menambahkan daftar repositori project ke informasi ini. Untuk mempelajari lebih lanjut, lihat Informasi dependensi untuk Konsol Play. |
android.enableArtProfiles |
true |
Profil Dasar Pengukuran kini selalu dibuat. Lihat Profil Dasar Pengukuran untuk mengetahui detailnya. |
android.enableNewResourceShrinker |
true |
Menggunakan implementasi shinker resource baru secara default. Yang baru penyingkat resource mencakup dukungan untuk fitur dinamis. |
android.enableSourceSetPathsMap |
true |
Digunakan untuk menghitung pemetaan jalur resource relatif, sehingga build Gradle lebih sering diperbarui. |
android.cacheCompileLibResources |
true |
Resource library yang dikompilasi kini dapat di-cache secara default karena Gradle
melacak file sumber daya relatif terhadap lokasi proyek. Memerlukan
android.enableSourceSetPathsMap untuk diaktifkan. |
android.disableAutomaticComponentCreation |
true |
AGP 8.0 tidak membuat SoftwareComponent secara default. Sebagai gantinya, AGP membuat SoftwareComponents hanya untuk varian yang dikonfigurasi untuk dipublikasikan menggunakan DSL publikasi. |
Flag stabil baru untuk profil eksekusi
AGP menyertakan flag baru android.settings.executionProfile
. Gunakan tanda ini untuk
mengganti profil eksekusi default dari
SettingsExtension
Untuk mempelajari lebih lanjut, lihat dokumentasi plugin setelan.
Untuk melihat pratinjau flag eksperimental, lihat catatan rilis pratinjau.
Penetapan properti lambat Kotlin tidak didukung
Jika Anda menggunakan DSL Kotlin Gradle untuk skrip build, perhatikan bahwa Android
Studio dan AGP 8.0 tidak mendukung penetapan properti eksperimental menggunakan
operator =
. Untuk informasi selengkapnya tentang fitur ini, lihat
catatan rilis
dan
dokumentasi.
Kategori tugas Build Analyzer
Mulai Android Studio Flamingo, Build Analyzer memiliki tampilan default baru untuk tugas yang memengaruhi durasi build. Jika project Anda menggunakan AGP 8.0 atau yang lebih tinggi, Alih-alih menampilkan tugas satu per satu, Build Analyzer mengelompokkannya berdasarkan kategori. Misalnya, tugas khusus untuk Resource Android, Kotlin, atau Dexing digabungkan, lalu diurutkan berdasarkan durasi build. Hal ini memudahkan Anda mengetahui kategori yang paling memengaruhi waktu build. Memperluas setiap kategori menampilkan daftar tugas yang sesuai. Untuk menampilkan tugas satu per satu, tanpa pengelompokan, gunakan drop-down Kelompokkan menurut.
Plugin setelan baru
AGP 8.0.0-alpha09 memperkenalkan plugin setelan baru. Plugin setelan memungkinkan Anda memusatkan konfigurasi global—konfigurasi yang berlaku untuk semua modul—di satu tempat sehingga Anda tidak perlu menyalin dan menempel konfigurasi di banyak modul. Selain itu, Anda dapat menggunakan plugin setelan untuk membuat profil eksekusi alat, atau petunjuk yang berbeda tentang cara menjalankan alat, dan beralih di antara alat tersebut.
Untuk menggunakan plugin setelan, terapkan plugin dalam file settings.gradle
:
apply plugin 'com.android.settings'
Memusatkan konfigurasi global
Untuk mengonfigurasi konfigurasi global, gunakan blok android
baru di
File settings.gradle
. Berikut contohnya:
android {
compileSdk 31
minSdk 28
...
}
Profil eksekusi alat
Plugin setelan juga memungkinkan Anda membuat profil eksekusi untuk beberapa alat. Channel profil eksekusi menentukan cara alat dijalankan; Anda dapat memilih berbagai profil eksekusi tergantung pada lingkungannya. Dalam profil eksekusi, Anda dapat menetapkan argumen JVM untuk alat dan mengonfigurasinya agar berjalan dalam proses terpisah. Saat ini, hanya alat R8 yang didukung.
Buat profil eksekusi dan setel profil eksekusi default di
settings.gradle
, seperti yang ditunjukkan dalam contoh berikut:
android {
execution {
profiles {
high {
r8 {
jvmOptions += ["-Xms2048m", "-Xmx8192m", "-XX:+HeapDumpOnOutOfMemoryError"]
runInSeparateProcess true
}
}
low {
r8 {
jvmOptions += ["-Xms256m", "-Xmx2048m", "-XX:+HeapDumpOnOutOfMemoryError"]
runInSeparateProcess true
}
}
ci {
r8.runInSeparateProcess false
}
}
defaultProfile "low"
}
}
Untuk mengganti profil default, pilih profil lain menggunakan
properti android.experimental.settings.executionProfile
dalam
file gradle.properties
:
android.experimental.settings.executionProfile=high
Anda juga dapat menetapkan properti ini menggunakan
baris perintah, yang memungkinkan Anda menyiapkan
alur kerja yang berbeda. Misalnya, jika memiliki alur kerja integrasi berkelanjutan, Anda dapat menggunakan command line untuk mengubah profil eksekusi tanpa harus mengubah file settings.gradle
:
./gradlew assembleRelease \
-Pandroid.experimental.settings.executionProfile=ci
JDK 17 diperlukan untuk menjalankan AGP 8.0
Saat menggunakan Plugin Android Gradle 8.0 untuk membangun aplikasi, JDK 17 kini diperlukan untuk menjalankan Gradle. Android Studio Flamingo memaketkan JDK 17 dan mengonfigurasi Gradle untuk menggunakannya secara default, yang berarti sebagian besar pengguna Android Studio tidak perlu perubahan konfigurasi pada project mereka.
Jika Anda perlu menyetel versi JDK secara manual digunakan oleh AGP di dalam Android Studio, Anda harus menggunakan JDK 17 atau yang lebih baru.
Saat menggunakan AGP yang terpisah dari Android Studio, upgrade versi JDK dengan
menyetel JAVA_HOME
variabel lingkungan
atau -Dorg.gradle.java.home
opsi command line
ke direktori instalasi JDK 17 Anda.
Perbaikan masalah
Plugin Android Gradle 8.0.0
Perbaikan Masalah | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Plugin Android Gradle |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Dexer (D8) |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lint |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Integrasi Lint |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Penyingkat (R8) |
|
Plugin Android Gradle 8.0.1
Perbaikan Masalah | ||||
---|---|---|---|---|
Penyingkat (R8) |
|
Plugin Android Gradle 8.0.2
Perbaikan Masalah | |||||
---|---|---|---|---|---|
Penyingkat (R8) |
|