Halaman ini melacak masalah umum pada Android Studio Plugin Koala dan Android Gradle 8.5.0. Jika mengalami masalah yang belum dicakup di sini, harap laporkan bug.
Upgrade ke pratinjau: Setiap rilis Android Studio dan plugin Android Gradle bertujuan untuk meningkatkan stabilitas dan performa, serta menambahkan fitur baru. Untuk merasakan manfaat rilis mendatang sekarang, download dan instal Pratinjau Android Studio.
Masalah Umum terkait Android Studio
Bagian ini menjelaskan masalah umum yang ada di versi stabil terbaru Android Studio.
Jendela Firebase Assistant menampilkan pesan error
Jika Jendela Firebase Assistant (Tools > Firebase dari menu utama) menampilkan pesan error, batalkan cache dan mulai ulang Android Studio untuk memperbaiki error.
Tidak dapat mengisolasi tampilan menggunakan Layout Inspector
Kemampuan untuk memisahkan tampilan menggunakan sematan Layout Inspector tidak tersedia untuk sementara. Kami sedang berupaya memperbaiki masalah ini di rilis mendatang.
Node Compose tidak semuanya dapat diperiksa menggunakan Layout Inspector
Jika Anda melihat bahwa tidak semua node Compose dapat diperiksa saat Anda menggunakan Layout Inspector, hal ini mungkin disebabkan oleh bug yang telah diperbaiki di Compose versi 1.5.0-alpha04. Jika mengalami masalah ini, pastikan Anda mengupgrade ke Compose versi 1.5.0-alpha04 atau yang lebih tinggi.
Terjadi error saat merender Pratinjau Compose
Mulai dari Android Studio Chipmunk, jika Anda melihat
java.lang.NoSuchFieldError: view_tree_saved_state_registry_owner
atau
java.lang.ClassNotFoundException: androidx.savedstate.R$id
di panel masalah,
pastikan untuk menyertakan dependensi debugImplementation
ke
androidx.lifecycle:lifecycle-viewmodel-savedstate
di modul Anda.
Jika Anda melihat java.lang.NoSuchFieldError: view_tree_lifecycle_owner
di
panel masalah, pastikan untuk menyertakan dependensi debugImplementation
ke
androidx.lifecycle:lifecycle-runtime
dalam modul Anda.
Jika Anda melihat java.lang.NoClassDefFoundError: Could not initialize class androidx.customview.poolingcontainer.PoolingContainer
atau
java.lang.NoClassDefFoundError: androidx/customview/poolingcontainer/PoolingContainerListener
di panel masalah, pastikan untuk menyertakan dependensi debugImplementation
ke
androidx.customview:customview-poolingcontainer
dalam modul Anda.
Terjadi error saat menggunakan sandi yang berbeda untuk kunci dan keystore
Mulai versi 4.2, Android Studio kini dapat berjalan di JDK 11. Update ini menyebabkan perubahan perilaku yang mendasarinya terkait dengan kunci penandatanganan.
Saat Anda membuka Build > Generate Signed Bundle / APK dan mencoba mengonfigurasi penandatanganan aplikasi untuk app bundle atau APK, memasukkan sandi yang berbeda untuk kunci dan keystore dapat menyebabkan error berikut:
Key was created with errors:
Warning: Different store and Key passwords not supported for PKCS12 Key stores
Guna mengatasi masalah ini, masukkan sandi yang sama untuk kunci dan keystore.
Android Studio tidak dimulai setelah menginstal versi 4.2
Studio mencoba mengimpor versi .vmoptions sebelumnya dan membersihkannya agar berfungsi dengan pembersih sampah yang digunakan oleh JDK 11. Jika proses tersebut gagal, IDE mungkin tidak dimulai untuk pengguna tertentu yang menetapkan opsi VM kustom di file .vmoptions.
Untuk mengatasi masalah ini, sebaiknya Anda menjadikan opsi kustom sebagai komentar di .vmoptions (menggunakan karakter “#”). File .vmoptions dapat ditemukan di lokasi berikut:
Windows
C:\Users\YourUserName\AppData\[Local|Roaming]\Google\AndroidStudio4.2\studio64.exe.vmoptions
macOS
~/Library/Application Support/Google/AndroidStudio4.2/studio.vmoptions
Linux
~/.config/Google/AndroidStudio4.2/studio64.vmoptions
Jika Studio masih tidak dimulai setelah mencoba solusi ini, lihat Studio tidak dimulai setelah upgrade di bawah.
Aplikasi yang menggunakan error Database Inspector di emulator Android 11
Aplikasi yang menggunakan Database Inspector mungkin tidak bekerja saat berjalan di emulator Android 11, dengan error seperti berikut muncul di logcat:
Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)
Untuk memperbaiki masalah ini, upgrade emulator Android 11 Anda ke versi 9 atau yang lebih baru dengan membuka Tools > SDK Manager. Di tab SDK Platforms, centang kotak Show Package Details, lalu pilih revisi 9 atau yang lebih baru dari emulator Android 11.
Studio tidak dimulai setelah upgrade
Jika Studio tidak dimulai setelah upgrade, masalahnya mungkin disebabkan konfigurasi Android Studio yang tidak valid yang diimpor dari Android Studio versi sebelumnya atau plugin yang tidak kompatibel. Sebagai solusinya, coba hapus (atau ganti nama, untuk tujuan pencadangan) direktori di bawah ini, tergantung pada versi Android Studio dan sistem operasi, lalu mulai Android Studio lagi. Tindakan ini akan mereset Android Studio ke status default, dengan semua plugin pihak ketiga dihapus.
Untuk Android Studio 4.1 dan yang lebih baru:
Windows:
%APPDATA%\Google\AndroidStudio<version>
Contoh:C:\Users\your_user_name\AppData\Roaming\Google\AndroidStudio4.1
macOS:
~/Library/Application Support/Google/AndroidStudio<version>
Contoh:~/Library/Application Support/Google/AndroidStudio4.1
Linux:
~/.config/Google/AndroidStudio<version>
dan~/.local/share/Google/AndroidStudio<version>
Contoh:~/.config/Google/AndroidStudio4.1
dan~/.local/share/Google/AndroidStudio4.1
Untuk Android Studio 4.0 dan yang lebih lama:
Windows:
%HOMEPATH%\.AndroidStudio<version>\config
Contoh:C:\Users\your_user_name\.AndroidStudio3.6\config
macOS:
~/Library/Preferences/AndroidStudio<version>
Contoh:~/Library/Preferences/AndroidStudio3.6
Linux:
~/.AndroidStudio<version>/config
Contoh:~/.AndroidStudio3.6/config
Perhatikan bahwa direktori konfigurasi untuk rilis Canary dan Beta Android
Studio adalah PreviewX.Y
, bukan X.Y
untuk
<version>
. Misalnya, build Android Studio 4.1 Canary menggunakan AndroidStudioPreview4.1
, bukan direktori AndroidStudio4.1
yang digunakan untuk rilis Kandidat Rilis dan rilis
Stabil.
Masalah kompilasi di project multiplatform Kotlin
Error kompilasi dapat muncul di kode MPP Kotlin karena simbol yang hilang. Mengupgrade plugin Kotlin Anda ke versi 1.4 akan menyelesaikan masalah ini.
Konflik konfigurasi tombol di Linux
Di Linux, pintasan keyboard tertentu bentrok dengan pintasan keyboard default Linux dan pintasan pengelola jendela populer, seperti KDE dan GNOME. Pintasan keyboard yang bentrok ini mungkin tidak berfungsi seperti yang diharapkan di Android Studio.
Informasi selengkapnya tentang masalah ini (termasuk kemungkinan solusi) dapat ditemukan di pelacak bug IntelliJ.
Teks UI kecil di ChromeOS
Pada ChromeOS, teks mungkin terlihat jauh lebih kecil daripada rilis sebelumnya. Untuk mengatasi masalah ini, lakukan langkah berikut:
- Buka jendela Settings dengan mengklik File > Settings
- Buka Appearance & Behavior > Appearance.
- Pilih Use custom font.
- Tambah ukuran font.
- Pada jendela Settings, buka Editor > Font.
- Tambah ukuran font.
- Klik OK.
Pengeditan kode
Bagian ini menjelaskan masalah umum terkait editor kode.
Input keyboard macet - masalah "iBus" pada Linux
Ada beberapa interaksi umum antara daemon iBus pada Linux dan Android Studio. Dalam beberapa skenario, IDE berhenti merespons input keyboard atau mulai menginput karakter acak. Bug ini dipicu oleh beberapa sinkronisasi yang hilang antara iBus dan XLib + AWT, dan telah dilaporkan upstream ke JetBrains dan iBus. Ada tiga solusi untuk masalah ini:
- Solusi 1: Paksa iBus untuk memasuki mode sinkron. Sebelum memulai Android
Studio, jalankan perintah berikut pada command line:
$ IBUS_ENABLE_SYNC_MODE=1 ibus-daemon -xrd
- Solusi 2: Nonaktifkan input iBus di Android Studio. Untuk menonaktifkan input iBus
khusus untuk Android Studio, jalankan perintah berikut di command line:
$ XMODIFIERS= ./bin/studio.sh
Solusi ini hanya menonaktifkan metode input untuk Android Studio, bukan aplikasi lain yang mungkin Anda jalankan. Perhatikan bahwa jika Anda memulai ulang daemon saat Android Studio sedang berjalan (misalnya, dengan menjalankanibus-daemon -rd
), Anda secara efektif menonaktifkan metode input untuk semua aplikasi lain dan juga dapat membuat error pada JVM Android Studio dengan kesalahan segmentasi. - Solusi 3: Periksa kembali binding pintasan untuk memastikan
Next input shortcut tidak ditetapkan ke Control+Spasi, karena ini juga
merupakan pintasan untuk menyelesaikan kode di Android Studio. Ubuntu 14.04 (Trusty)
menjadikan Super+Spasi sebagai pintasan default, tetapi setelan dari versi sebelumnya
mungkin masih ada. Untuk memeriksa binding pintasan, jalankan
ibus-setup
pada command line untuk membuka jendela IBus Preferences. Di bagian Keyboard Shortcuts, centang Next input method. Jika saat ini ditetapkan ke Control+Spasi, ubah menjadi Super+Spasi, atau pintasan lain yang Anda pilih.
Konfigurasi Project
Bagian ini menjelaskan masalah umum terkait konfigurasi project dan sinkronisasi Gradle.
Sinkronisasi Gradle Gagal: Broken Pipe
Masalahnya adalah daemon Gradle mencoba menggunakan IPv4, bukan IPv6.
- Solusi 1: Di Linux, masukkan baris berikut dalam
~/.profile
atau~/.bash_profile
:export _JAVA_OPTIONS="-Djava.net.preferIPv6Addresses=true"
- Solusi 2: Dalam file
vmoptions Android Studio,
ubah baris
-Djava.net.preferIPv4Addresses=true
menjadi-Djava.net.preferIPv6Addresses=true
. Untuk informasi selengkapnya, lihat Panduan Pengguna Networking IPv6.
Error "peer not authenticated" dari sinkronisasi Gradle atau SDK Manager
Akar masalah error ini adalah adanya sertifikat yang hilang dalam
$JAVA_HOME/jre/lib/certificates/cacerts
. Untuk mengatasi error ini, lakukan langkah berikut:
- Jika Anda menggunakan proxy, cobalah membuat koneksi langsung. Jika koneksi langsung
berfungsi, maka agar dapat terhubung melalui proxy, Anda mungkin harus
menggunakan
keytool
untuk menambahkan sertifikat server proxy ke file cacerts. - Instal ulang JDK yang didukung dan belum dimodifikasi. Ada
masalah umum yang memengaruhi pengguna Ubuntu, yang menghasilkan
/etc/ssl/certs/java/cacerts
kosong. Untuk mengatasi masalah ini, jalankan berikut pada command line:sudo /var/lib/dpkg/info/ca-certificates-java.postinst configure
Men-deploy
Bagian ini menjelaskan masalah umum terkait men-deploy aplikasi Anda ke perangkat yang terhubung.
[Khusus Mac OS] Update inkremental tidak diterapkan karena ada masalah pada file Gradle yang diamati di project yang disimpan dalam /System/Volumes/Data
Masalah Gradle 18149 memengaruhi
Plugin Android Gradle versi 7.0 dan yang lebih baru karena memerlukan Gradle versi 7.0 dan yang lebih baru. Mulai Gradle 7.0, pengamatan file diaktifkan secara default.
Jika Anda menggunakan Mac OS dan project disimpan di
/System/Volumes/Data
, pengamatan file Gradle tidak akan melacak perubahan file dengan benar.
Hal ini akan menyebabkan Sistem Build tidak melihat perubahan file apa pun, sehingga
tidak akan mengupdate APK. Kode deployment inkremental lalu
tidak akan melakukan apa pun karena status APK lokal sama dengan yang ada di perangkat.
Untuk mengatasi masalah ini, Anda harus memindahkan direktori project ke direktori
pengguna, yaitu di bagian /Users/username
. Sistem Build kemudian akan
diberi tahu dengan benar tentang perubahan file oleh pengamatan file Gradle dan perubahan
inkremental akan berhasil diterapkan.
Android Emulator HAXM di macOS High Sierra
Android Emulator pada macOS High Sierra (10.13) memerlukan HAXM 6.2.1+ untuk kompatibilitas dan stabilitas terbaik di macOS. Namun, macOS 10.13 memiliki proses yang lebih dalam untuk menginstal ekstensi kernel seperti HAXM. Anda harus mengizinkan secara manual penginstalan ekstensi kernel tersebut sebagai berikut:
- Pertama, cobalah menginstal HAXM versi terbaru dari SDK Manager.
- Pada MacOS, buka System Preferences > Security and Privacy.
Jika Anda melihat peringatan bahwa System software from developer "Intel Corporation Apps" was blocked from loading, klik Allow:
Untuk informasi dan solusi lebih lanjut, lihat halaman web Apple ini dan Masalah 62395878.
Apply Changes
Bagian ini menjelaskan masalah umum yang terkait Apply Changes.
Nama aplikasi baru tidak diterapkan
Jika Anda mengganti nama aplikasi lalu mencoba menerapkan perubahan tersebut, nama yang diperbarui mungkin
tidak ditampilkan. Untuk mengatasi masalah ini, klik Run
untuk men-deploy ulang aplikasi serta melihat perubahan.
Masalah di Android Runtime menampilkan error
Jika Anda menggunakan perangkat yang menjalankan Android 8.0 atau 8.1, Anda mungkin menerima pesan
"VERIFICATION_ERROR" saat mencoba menerapkan jenis perubahan tertentu
(terutama jika menggunakan Kotlin). Pesan ini disebabkan oleh masalah dengan
Android Runtime yang telah diperbaiki di Android 9.0 dan yang lebih baru. Meskipun masalah tersebut menyebabkan Apply Changes gagal, Anda tetap dapat melakukan Run aplikasi untuk melihat perubahan. Namun, sebaiknya upgrade
perangkat ke Android 9.0 atau yang lebih baru.
Proses debug dan pengujian
Bagian ini menjelaskan masalah umum terkait proses debug dan pengujian aplikasi.
Pengujian JUnit tidak menyertakan resource dalam classpath saat dijalankan dari Android Studio
Jika Anda memiliki folder resource khusus dalam modul Java, maka resource tersebut
tidak akan dapat ditemukan saat menjalankan pengujian dari IDE. Sebagai solusinya,
jalankan pengujian menggunakan Gradle dari command line. Anda juga dapat mengeksekusi tugas check
Gradle
dari IDE. Lihat Masalah
64887 untuk detail
selengkapnya.
Masalah ini terjadi karena IntelliJ 13, yang mengharuskan Anda hanya memiliki satu folder sebagai classpath. Builder IntelliJ menyalin semua resource ke dalam folder build itu, tetapi Gradle tidak menyalin resource tersebut.
- Solusi 1: Jalankan tugas
check
Gradle dari IDE, bukan menjalankan pengujian unit. - Solusi 2: Perbarui skrip build Anda untuk menyalin resource secara manual ke dalam folder build. Lihat komentar nomor 13 untuk informasi selengkapnya.
Menjalankan pengujian JUnit dapat mengakibatkan kode dikompilasi dua kali
Saat membuat project baru, konfigurasi JUnit template mungkin dibuat dengan dua langkah "Before launch": Make dan Gradle-aware Make. Selanjutnya, konfigurasi ini disebarkan ke semua konfigurasi run JUnit yang dibuat.
- Untuk memperbaiki masalah pada project saat ini, klik Run > Edit Configurations dan ubah konfigurasi JUnit default agar hanya menyertakan langkah Gradle-aware Make.
- Untuk memperbaiki masalah pada semua project mendatang, klik File > Close Project. Anda akan melihat layar sambutan. Selanjutnya, klik Configure > Project Defaults > Run Configurations dan ubah konfigurasi JUnit agar hanya menyertakan langkah Gradle-aware Make.
Beberapa konfigurasi test run tidak berfungsi
Tidak semua konfigurasi run yang tersedia saat mengklik kanan metode pengujian valid. Secara khusus, konfigurasi berikut tidak valid:
- Konfigurasi run Gradle (yang memiliki logo Gradle sebagai ikon) tidak berfungsi.
- Konfigurasi run JUnit (yang memiliki ikon tanpa Android hijau) tidak berlaku pada uji instrumentasi, yang tidak dapat dijalankan di JVM lokal.
Menambahkan breakpoint Java saat proses debug kode native
Saat aplikasi Anda dijeda pada breakpoint (titik henti sementara) dalam kode native Anda, debugger Auto dan Dual mungkin tidak langsung mengenali breakpoint Java baru yang Anda tetapkan. Untuk menghindari masalah ini, tambahkan breakpoint Java sebelum memulai sesi debug atau selagi aplikasi dijeda pada breakpoint Java. Untuk informasi selengkapnya, lihat masalah 229949.
Meninggalkan debugger native
Saat menggunakan debugger Auto atau Dual untuk
men-debug kode Java dan native, jika Anda memasuki fungsi native dari
kode Java Anda (misalnya, debugger menjeda eksekusi pada baris di
kode Java yang memanggil fungsi native dan Anda mengklik Step Into
) dan Anda ingin kembali ke kode Java, klik
Resume Program
(bukan Step Out
atau Step Over
). Proses aplikasi Anda akan tetap dijeda, jadi klik Resume
Program
di tab your-module-java
untuk melanjutkan. Untuk informasi selengkapnya, lihat masalah
224385.
Debugger native mengalami hang saat memuat library
Saat menggunakan debugger native untuk pertama kalinya setelah mengupgrade ke Android
Studio 4.2 dan yang lebih tinggi, debugger native dapat berhenti merespons saat memuat
library dari perangkat Android. Masalah ini adalah masalah melekat yang terus terjadi
meskipun Anda menghentikan dan memulai ulang debugger. Untuk memperbaiki masalah ini,
hapus cache LLDB di $USER/.lldb/module-cache/
.
Debugger native mengalami error dengan pesan "Debugger process finished with exit code 127"
Error ini terjadi pada platform berbasis Linux saat memulai
debugger native. Hal ini menunjukkan bahwa salah satu library yang diperlukan oleh debugger
native tidak diinstal di sistem lokal. Nama library yang hilang
mungkin sudah dicetak di file idea.log
. Jika tidak, Anda dapat menggunakan
terminal untuk membuka direktori penginstalan Android Studio dan menjalankan
command line bin/lldb/bin/LLDBFrontend --version
untuk mempelajari library
yang tidak ada. Biasanya, library yang hilang adalah ncurses5
karena beberapa distribusi Linux terbaru
telah diupgrade ke ncurses6
.
Profiler
Bagian ini menjelaskan masalah umum pada Profiler.
Native Memory Profiler: Pembuatan profil tidak tersedia saat memulai aplikasi
Native Memory Profiler saat ini tidak tersedia sewaktu memulai aplikasi. Opsi ini akan tersedia dalam rilis mendatang.
Sebagai solusinya, Anda dapat menggunakan profiler command line mandiri Perfetto untuk mengambil profil startup.
Error waktu tunggu di CPU Profiler
Anda mungkin menemukan error "Recording failed to stop" di CPU Profiler Android Studio saat memilih konfigurasi Sample Java Methods atau Trace Java Methods. Yang terjadi biasanya error waktu tunggu, terutama jika Anda melihat
pesan error berikut di file idea.log
:
Wait for ART trace file timed out
Error waktu tunggu cenderung memengaruhi metode yang dilacak daripada metode sampel, dan rekaman yang lebih panjang daripada rekaman yang lebih pendek. Sebagai solusi sementara, Anda dapat mencoba rekaman yang lebih pendek untuk melihat apakah error tersebut menghilang.
Jika Anda mengalami masalah waktu tunggu pada Profiler, harap laporkan bug
yang menyertakan produsen/model perangkat Anda serta entri yang relevan dari
idea.log
dan logcat.
Pengecualian ADB saat menjalankan debug atau membuat profil
Saat menggunakan Platform Tools 29.0.3, proses debug native dan Android Studio
Profiler mungkin tidak berfungsi dengan baik, dan Anda mungkin melihat
“AdbCommandRejectedException” atau “Failed to connect port” dalam file idea.log
saat Anda memilih Help > Show Log. Mengupgrade Platform Tools ke
versi 29.0.4 atau yang lebih baru akan mengatasi kedua masalah ini.
Untuk mengupgrade Platform Tools, lakukan langkah berikut:
- Buka SDK Manager dari Android Studio dengan mengklik Tools >
SDK Manager atau klik SDK Manager
di toolbar.
- Klik kotak centang di samping Android SDK
Platform-Tools sehingga muncul tanda centang. Ikon download
akan muncul di kolom sebelah kiri.
- Klik Apply atau OK.
Plugin mencegah jendela Output Build berfungsi
Menggunakan plugin CMake simple highlighter akan mencegah konten muncul di jendela Build Output. Build berjalan dan tab Output Build muncul, tetapi tidak ada output yang dicetak (masalah #204791544).
Urutan penginstalan mencegah peluncuran
Menginstal Android Studio versi yang lebih baru sebelum versi yang lebih lama dapat
mencegah peluncuran versi yang lebih lama. Misalnya, jika Anda menginstal
Android Studio versi canary terlebih dahulu, lalu mencoba menginstal dan meluncurkan versi yang stabil,
versi stabil mungkin tidak diluncurkan. Dalam kasus semacam ini, Anda harus
menghapus cache untuk meluncurkan versi stabil (lebih lama). Di macOS, untuk menghapus
cache, hapus direktori
Library/ApplicationSupport/Google/AndroidStudioversion_number
. Di Windows, untuk menghapus cache,
gunakan Disk Cleanup.
Espresso Test Recorder tidak berfungsi dengan Compose
Espresso Test Recorder tidak berfungsi pada project yang menyertakan Compose. Untuk membuat pengujian UI bagi project yang menyertakan Compose, lihat Menguji tata letak Compose Anda.
Pintasan Logcat bertentangan dengan tata letak keyboard non-bahasa Inggris
Jika Anda menggunakan tata letak keyboard non-bahasa Inggris, pintasan keyboard Logcat
default mungkin bertentangan dengan tata letak dan mencegah Anda mengetik
karakter tertentu saat mengedit teks di Android Studio. Untuk mengatasi masalah ini,
hapus atau konfigurasi ulang keymap Logcat yang bertentangan. Untuk mengedit keymap Logcat di
Android Studio, buka Android Studio > Setelan > Keymap dan telusuri
Logcat
dalam daftar keymap. Untuk informasi selengkapnya, lihat masalah
#263475910.
Masalah ini akan diselesaikan dengan menghapus pintasan Logcat di Android Studio Electric Eel Patch 1.
Masalah umum pada Plugin Android Gradle
Bagian ini menjelaskan masalah umum yang ada di versi stabil terbaru plugin Android Gradle.
Tidak semua dependensi library fitur dinamis diperiksa lint
Saat menjalankan lint dengan checkDependencies = true
dari modul aplikasi,
dependensi library fitur dinamis tidak diperiksa kecuali juga merupakan dependensi
aplikasi (masalah #191977888).
Sebagai solusinya, tugas lint dapat dijalankan pada library tersebut.
Menandatangani file yang dinamai dengan karakter enter
Penandatanganan JAR (skema v1) tidak mendukung nama file yang berisi karakter enter (masalah #63885809).
Output varian mungkin tidak dapat dimodifikasi pada waktu build
Penggunaan Variant API untuk memanipulasi output varian tidak dapat dilakukan dengan plugin baru. Modifikasi masih berfungsi untuk tugas sederhana, seperti mengubah nama APK selama waktu build, seperti yang ditunjukkan di bawah ini:
// If you use each() to iterate through the variant objects, // you need to start using all(). That's because each() iterates // through only the objects that already exist during configuration time— // but those object don't exist at configuration time with the new model. // However, all() adapts to the new model by picking up object as they are // added during execution. android.applicationVariants.all { variant -> variant.outputs.all { outputFileName = "${variant.name}-${variant.versionName}.apk" } }
Namun, modifikasi tidak berfungsi untuk tugas-tugas yang lebih rumit,
yang melibatkan akses objek outputFile
. Alasannya, tugas khusus varian tidak lagi dibuat
selama tahap konfigurasi. Sebagai akibatnya, plugin tidak dapat mengetahui
semua output-nya sejak awal, tetapi waktu konfigurasi menjadi lebih cepat.
manifestOutputFile tidak lagi tersedia
Metode processManifest.manifestOutputFile()
tidak lagi
tersedia, dan Anda mendapatkan pesan error berikut saat memanggilnya:
A problem occurred configuring project ':myapp'. Could not get unknown property 'manifestOutputFile' for task ':myapp:processDebugManifest' of type com.android.build.gradle.tasks.ProcessManifest.
Alih-alih memanggil manifestOutputFile()
untuk mendapatkan file manifes untuk setiap varian, Anda dapat memanggil processManifest.manifestOutputDirectory()
untuk menampilkan jalur direktori yang memuat semua manifes yang dihasilkan. Selanjutnya Anda bisa
menemukan manifes dan menerapkan logika Anda ke manifes tersebut. Contoh di bawah ini secara dinamis
mengubah kode versi dalam manifes:
android.applicationVariants.all { variant -> variant.outputs.all { output -> output.processManifest.doLast { // Stores the path to the maifest. String manifestPath = "$manifestOutputDirectory/AndroidManifest.xml" // Stores the contents of the manifest. def manifestContent = file(manifestPath).getText() // Changes the version code in the stored text. manifestContent = manifestContent.replace('android:versionCode="1"', String.format('android:versionCode="%s"', generatedCode)) // Overwrites the manifest with the new text. file(manifestPath).write(manifestContent) } } }
Masalah dengan dukungan AIDL AGP 7.3.0 dan Kotlin 1.7.x
Menggunakan AGP 7.3.0 dengan KAPT di Kotlin 1.7.x menyebabkan set sumber AIDL untuk
varian build tertentu dihapus. Anda masih dapat menggunakan set
sumber AIDL lainnya, termasuk main/
, jenis build, ragam produk, dan kombinasi
ragam produk. Jika Anda perlu menggunakan set sumber AIDL khusus varian,
tetap gunakan Kotlin 1.6.21.
Masalah umum yang telah diperbaiki
Bagian ini menjelaskan masalah umum yang telah diperbaiki dalam rilis terbaru. Jika mengalami salah satu masalah ini, sebaiknya Anda mengupdate Android Studio ke versi pratinjau atau versi stabil terbaru.
Perbaikan di Android Studio 2021.1.1
- Output lint tidak ada: Tidak ada output teks lint yang dicetak ke
stdout
jika tugas lint adalahUP-TO-DATE
(masalah #191897708). Diperbaiki di AGP 7.1.0-alpha05. - Masalah saat menguji unit project aplikasi yang menggunakan plugin Hilt: Classpath pengujian unit berisi class aplikasi yang tidak diinstrumentasi, yang berarti Hilt tidak menginstrumentasi class aplikasi untuk menangani dependensi injeksi saat menjalankan pengujian unit (masalah #213534628). Diperbaiki di AGP 7.1.1.
Perbaikan di Android Studio 2020.3.1
- Pengecualian lint di project Kotlin: Project Kotlin yang menetapkan
checkDependencies = true
mungkin mengalami error atau pengecualian pointer null (masalah #158777858).
Perbaikan di Android Studio 4.2
- IDE berhenti berfungsi di macOS Big Sur: Android Studio 4.1 mungkin berhenti berfungsi saat Anda membuka dialog.
Perbaikan di Android Studio 4.1
- Mulai ulang untuk menerapkan setelan memori dari IDE versi sebelumnya: Setelah mengupdate Android Studio, Anda harus memulai ulang Android Studio untuk menerapkan setelan memori apa pun yang dimigrasikan dari IDE versi sebelumnya.
- Class manifes dengan string izin kustom tidak lagi dibuat secara
default: Jika Anda ingin membuat class tersebut, tetapkan
android.generateManifestClass = true
.
Perbaikan di Android Studio 3.6
Error penginstalan APK di LineageOS: Men-deploy aplikasi ke perangkat yang menjalankan LineageOS atau CyanogenMod versi tertentu mungkin akan gagal dan memunculkan pengecualian
INSTALL_PARSE_FAILED_NOT_APK
.Pada Android Studio 3.6 Beta 1 dan yang lebih baru, IDE menangani pengecualian ini dengan melakukan penginstalan aplikasi penuh saat Anda men-deploy aplikasi ke perangkat LineageOS atau CyanogenMod, yang mungkin mengakibatkan waktu deploy lebih lama.
Perbaikan di Android Studio 3.5.2
- Gaya kode XML rusak: Saat mengedit kode XML, IDE menerapkan gaya kode yang salah jika Anda memilih Code > Reformat Code dari panel menu.
Perbaikan di Android Studio 3.3.1
Error memori habis saat memindai project berbasis C++: Saat Gradle memindai project yang memiliki kode C++ di lebih dari satu lokasi pada drive yang sama, pemindaian akan mencakup semua direktori di bawah direktori umum pertama. Memindai sejumlah besar direktori dan file dapat memunculkan error memori habis.
Untuk informasi selengkapnya tentang masalah ini, baca bug yang terkait dengan masalah tersebut.