Plugin Android Gradle 8.1.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 | 33.0.1 | 33.0.1 | 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. |
DSL Kotlin adalah default untuk konfigurasi build
Project baru kini menggunakan DSL Kotlin (build.gradle.kts
) secara default untuk konfigurasi
build. Alat ini menawarkan pengalaman pengeditan yang lebih baik daripada Groovy DSL
(build.gradle
) dengan penyorotan sintaksis, penyelesaian kode, dan navigasi ke
deklarasi. Perhatikan bahwa jika menggunakan AGP 8.1 dan DSL Kotlin untuk konfigurasi
build, Anda harus menggunakan Gradle 8.1 untuk mendapatkan pengalaman terbaik. Untuk mempelajari lebih lanjut,
lihat panduan migrasi DSL Kotlin.
Dukungan bahasa per aplikasi otomatis
Mulai dari Android Studio Giraffe Canary 7 dan AGP 8.1.0-alpha07, Anda dapat
mengonfigurasi aplikasi untuk mendukung preferensi bahasa
per aplikasi secara otomatis. Berdasarkan
resource project Anda, plugin Android Gradle menghasilkan file LocaleConfig
dan menambahkan referensi ke file tersebut dalam file manifes akhir, sehingga Anda tidak perlu lagi
melakukannya secara manual. AGP menggunakan resource dalam folder res
modul aplikasi Anda
dan dependensi modul library apa pun untuk menentukan lokalitas yang akan disertakan dalam
file LocaleConfig
.
Perhatikan bahwa fitur bahasa per aplikasi otomatis mendukung aplikasi yang menjalankan Android
13 (level API 33) atau yang lebih baru. Untuk menggunakan fitur ini, Anda harus menetapkan
compileSdkVersion
ke versi 33 atau lebih tinggi. Untuk mengonfigurasi preferensi bahasa per aplikasi
untuk Android versi sebelumnya, Anda masih harus
menggunakan API dan pemilih bahasa dalam aplikasi.
Untuk mengaktifkan dukungan bahasa per aplikasi otomatis, tentukan lokalitas default:
- Dalam folder
res
modul aplikasi, buat file baru bernamaresources.properties
. Dalam file
resources.properties
, tetapkan lokalitas default dengan labelunqualifiedResLocale
. Untuk membentuk nama lokalitas, gabungkan kode bahasa dengan skrip opsional dan kode wilayah, yang memisahkan keduanya dengan tanda hubung:- Bahasa: Gunakan kode ISO 639-1 dua atau tiga huruf.
- Skrip (opsional): Gunakan kode ISO 15924.
- Wilayah (opsional): Gunakan kode ISO 3166-1-alpha-2 dua huruf atau kode UN_M.49 tiga huruf.
Misalnya, jika lokalitas default Anda adalah bahasa Inggris Amerika:
unqualifiedResLocale=en-US
AGP menambahkan lokalitas default ini dan
lokalitas alternatif
yang telah Anda tentukan, menggunakan direktori values-*
dalam folder res
, ke
file LocaleConfig
yang dibuat secara otomatis.
Dukungan bahasa per aplikasi otomatis dinonaktifkan secara default. Untuk mengaktifkan fitur ini,
gunakan setelan generateLocaleConfig
dalam blok androidResources {}
file build.gradle.kts
level modul (file build.gradle
jika Anda menggunakan
Groovy):
Kotlin
android { androidResources { generateLocaleConfig = true } }
Groovy
android { androidResources { generateLocaleConfig true } }
Android Lint berisi bytecode yang menargetkan JVM 17
Mulai AGP 8.1.0-alpha04, Android Lint berisi bytecode yang menargetkan JVM
17. Jika menulis pemeriksaan lint kustom, Anda harus melakukan kompilasi dengan JDK 17 atau yang lebih baru
dan menentukan jvmTarget = '17'
dalam opsi compiler Kotlin.
Untuk mempelajari alat lint lebih lanjut, lihat Meningkatkan kode dengan pemeriksaan lint.
Setelan kompresi library native dipindahkan ke DSL
Mulai dari AGP 8.1.0-alpha10, Anda akan mendapatkan peringatan jika tidak mengonfigurasi kompresi library native menggunakan DSL, bukan manifes. Panduan berikut menjelaskan cara memperbarui konfigurasi untuk menggunakan DSL. Untuk mendapatkan bantuan dalam melakukan pembaruan ini, gunakan Upgrade Assistant AGP (Tools > AGP Upgrade Assistant).
Untuk menggunakan library native yang tidak dikompresi, hapus atribut android::extractNativeLibs
dari manifes dan tambahkan kode berikut ke file build.gradle.kts
level modul (file build.gradle
jika Anda menggunakan Groovy):
Kotlin
android { packagingOptions { jniLibs { useLegacyPackaging = false } } }
Groovy
android { packagingOptions { jniLibs { useLegacyPackaging false } } }
Tanda build eksperimental
Ini adalah flag eksperimental untuk mengonfigurasi build Anda yang tersedia di AGP 8.1.
Flag | Ditambahkan di | Nilai default | Catatan |
---|---|---|---|
android.experimental.useDefaultDebugSigningConfigForProfileableBuildtypes |
AGP 8.0 | false |
Mengaktifkan ini tanpa konfigurasi penandatanganan yang ditentukan akan menyebabkan AGP menggunakan konfigurasi penandatanganan debug default saat menjalankan build yang dapat dibuat profil atau dapat di-debug. Flag ini dinonaktifkan secara default untuk mendorong penulis build agar mendeklarasikan konfigurasi penandatanganan pembuatan profil tertentu. |
android.experimental.library.desugarAndroidTest |
AGP 8.0 | false |
Tanda ini memungkinkan builder library mengaktifkan desugaring library inti untuk APK pengujian tanpa memengaruhi AAR yang dihasilkan, misalnya melalui lint. Kami berencana untuk mendukung perilaku ini di Variant API. |
android.experimental.testOptions.managedDevices.customDevice |
AGP 8.0 | false |
Jika diaktifkan, Perangkat yang Dikelola Gradle akan mengizinkan jenis perangkat kustom yang ditentukan pengguna yang dapat disediakan oleh plugin. Flag ini harus diaktifkan jika Anda ingin menggunakan plugin Firebase Test Lab. |
android.lint.printStackTrace |
AGP 8.0 | false |
Jika diaktifkan, Android lint akan mencetak stacktrace jika mengalami error. Flag ini memiliki kemampuan yang sama dengan variabel lingkungan LINT_PRINT_STACKTRACE . |
android.experimental.testOptions.managedDevices.maxConcurrentDevices |
AGP 8.0 | Tidak ada | Menentukan jumlah maksimum Perangkat yang Dikelola Gradle (AVD) secara serentak agar aktif pada satu waktu. Jika nilainya 0 atau negatif, tidak ada jumlah maksimum perangkat. |
android.experimental.testOptions.installApkTimeout |
AGP 8.0 | Tidak ada | Durasi waktu tunggu dalam detik untuk menginstal APK. Jika nilainya 0 atau negatif, nilai tersebut akan ditetapkan ke nilai default oleh UTP. |