Masalah umum terkait Android Studio dan plugin Android Gradle.

Halaman ini melacak masalah umum pada Android Studio Dolphin | 2021.3.1 dan plugin Android Gradle 7.3.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.

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 Chrome OS

Pada Chrome OS, teks mungkin terlihat jauh lebih kecil daripada rilis sebelumnya. Untuk mengatasi masalah ini, lakukan langkah berikut:

  1. Buka jendela Settings dengan mengklik File > Settings
  2. Buka Appearance & Behavior > Appearance.
  3. Pilih Use custom font.
  4. Tambah ukuran font.
  5. Pada jendela Settings, buka Editor > Font.
  6. Tambah ukuran font.
  7. 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 baris berikut di command line:
    $ IBUS_ENABLE_SYNC_MODE=1 ibus-daemon -xrd
  • Solusi 2: Nonaktifkan input iBus di Android Studio. Untuk menonaktifkan input iBus untuk Android Studio saja, jalankan baris berikut pada 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 selagi Android Studio berjalan (misalnya dengan menjalankan ibus-daemon -rd), Anda secara efektif menonaktifkan metode input untuk semua aplikasi lain dan juga dapat menimbulkan error pada JVM Android Studio akibat 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 di ~/.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 baris 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:

  1. Pertama, cobalah menginstal HAXM versi terbaru dari SDK Manager.
  2. Pada MacOS, buka System Preferences > Security and Privacy.
  3. 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 Ikon 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 Ikon 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.
Android Studio juga mengingat konfigurasi run yang dibuat dalam konteks tertentu (misalnya, mengklik kanan class atau metode tertentu), dan tidak akan menawarkan untuk menjalankannya dalam konfigurasi berbeda pada masa mendatang. Untuk memperbaiki masalah ini, klik Run > Edit Configurations dan hapus konfigurasi yang salah dibuat.

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 melanjutkannya. 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:

  1. Buka SDK Manager dari Android Studio dengan mengklik Tools > SDK Manager atau klik SDK Manager di toolbar.
  2. Klik kotak centang di samping Android SDK Platform-Tools sehingga muncul tanda centang. Ikon download akan muncul di kolom sebelah kiri.
  3. 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.

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 bisa dilakukan untuk tugas-tugas sederhana, seperti mengubah nama APK selama waktu build, seperti yang ditampilkan 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 akan mendapatkan error berikut jika 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 adalah UP-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.