Saya mengembangkan aplikasi Android menggunakan Android 2.2, ukuran APK aplikasi saya adalah 22,5 MB, dan saya ingin membuat build baru untuk tablet Samsung. Saya mendapat kesalahan berikut:
INSTALL_FAILED_DEXOPT
Bagaimana cara mengatasi kesalahan semacam ini?
Jawaban:
Restart emulator dari
Android SDK and AVD Manager
dan memilih opsiWipe User Data
telah menyelesaikan masalah ini untuk saya.Anda dapat menemukan opsi seperti yang disorot pada gambar di bawah ini:
sumber
adb kill-server
makaadb start-server
harus menyelesaikan masalah Anda. Mungkin ada aplikasi yang lebih lama, lalu copot dulu.Ini sepertinya terkait dengan ruang disk untuk saya. Emulator 5.1 yang baru digulung mem-boot dengan kesalahan "low on disk space" - dan melihat properti emulator, ruang default yang dialokasikan untuk penyimpanan internal adalah 800MB yang tampaknya rendah.
Solusi, karena itu adalah untuk meningkatkan ini (saya pergi ke 4GB). Anehnya emulator masih melakukan booting dengan peringatan ruang disk yang sama tetapi pengaturan ulang pabrik (Pengaturan -> Cadangkan dan Kembalikan di dalam emulator) menyelesaikannya sepenuhnya untuk saya.
Agak aneh bahwa itu tidak bekerja di luar kotak dengan pengaturan default.
sumber
Versi lama aplikasi yang Anda instal memiliki pustaka / guci yang tergantung yang telah diubah. Saya mengalami masalah ini ketika memperbarui file jar lain yang sedang direfrensikan oleh aplikasi saya.
Anda harus mencopot pemasangan versi lama Anda dan kemudian Anda tidak akan memiliki masalah lagi ...
Pengaturan -> Aplikasi -> Kelola Aplikasi -> [Temukan dan Copot Aplikasi Anda]
INSTALL_FAILED_DEXOPT kesalahan tidak boleh meletus. Suka
Whoo hoo.
sumber
Jika Anda menggunakan Android Studio , coba bersihkan proyek Anda:
Build> Clean Project
sumber
Sepertinya pesan kesalahan ini dapat memiliki banyak penyebab berbeda. Kasing yang saya temui adalah pada perangkat nyata (jadi solusi basis emulator tidak berlaku).
Pada dasarnya, ketika ini terjadi, atur filter Logcat Anda ke Verbose atau Peringatkan , yang akan membantu Anda mendapatkan lebih banyak informasi tentang penyebabnya.
Dalam kasus saya, beberapa versi JUnit yang bertentangan atau sedang dimasukkan dalam proyek yang saya kerjakan (basis kode besar yang ada). Aplikasi Android yang saya coba gunakan memiliki beberapa proyek perpustakaan sebagai dependensi, dan saya keliru mengatur berbagai hal untuk memasukkan beberapa file jar JUnit.
Saya menemukan ini berdasarkan serangkaian pesan Logcat. Perhatikan bahwa garis WARN memberi penyebab:
sumber
Mengalami hal ini dengan Android Studio 3.4.1 tetapi menggunakan emulator yang lebih lama (5.0). Prosedur ini (pada Mac) memperbaiki masalah:
sumber
Saya mengubah ukuran RAM dan kapasitas penyimpanan internel dari emulator Sekarang ITU Bekerja ... dalam gerhana manajer AVD
sumber
coba jawabanku https://stackoverflow.com/a/34918549/3737254
Jika Anda menggunakan Android Studio 2.0, Nonaktifkan menjalankan instan.
FYI, jalankan instan adalah fitur baru dari android studio 2.0 (saya tidak pernah menggunakannya>. <)
cara menonaktifkan: preferensi -> pembangunan, eksekusi & penyebaran -> jalankan instan -> nonaktifkan, kemudian bekerja seperti sulap
Nikmati!
sumber
Saya perlu menonaktifkan Instant Run untuk memperbaiki masalah ini. Untuk menonaktifkan Instant Run pada OS X, buka Android Studio > Preferences > Build, Execution, Deployment > Instant Run kemudian hapus centang dari
Enable Instant Run to hot swap code/resource changes on deploy (default enabled)
.sumber
dexopt error. Application failed to install
. Saya sudah mencoba ini sebelum menemukan iniadb kill-server
adb start-server
:, me-restart Android Studio, dan Factory mengatur ulang perangkat saya.Satu-satunya solusi yang berhasil bagi saya untuk memperbaikinya adalah meningkatkan RAM VM menjadi 4GB.
sumber
Saya memiliki masalah yang sama hari ini dengan Android Studio pada perangkat virtual baru. Tampaknya saya telah mengunduh
x86_64
gambar, membuat ulang VD denganx86
gambar yang setara memperbaikinya.Saya berharap mendapatkan
INSTALL_FAILED_NO_MATCHING_ABIS
dalam kasus ini tapi entah bagaimana saya terjebakINSTALL_FAILED_DEXOPT
sumber
x86
gagal. Setelah mengunduh gambar dan mengubah emulator kex86_64
kesalahan sudah hilang. Saya menggunakan gambar sistem API 21.x86_64
gambar alih-alih yangx86
satu. Saya juga menggunakan AVD API 21 (Nexus 5).Saya bekerja dengan Android Studio dan memiliki kesalahan yang sama.
Menghapus folder build dari Modul utama membantu. Setelah menghapus semuanya kembali normal.
sumber
INSTALL_FAIL_DEXOPT biasanya ada hubungannya dengan batas yang ditempatkan pada classes.dex. Pada apa pun pra-ICS, dexopt akan gagal pada apa pun di atas 5 MB. Versi terbaru Android menggunakan buffer 8 atau 16 MB.
Periksa ukuran class.dex di APK Anda. Akan lebih baik untuk melihat apa penghitungan metode Anda, karena dex memiliki batas metode / bidang 65536.
Referensi:
Kesalahan saat memasang aplikasi (INSTALL_FAILED_DEXOPT)
https://www.facebook.com/notes/facebook-engineering/under-the-hood-dalvik-patch-for-facebook-for-android/10151345597798920
Cara mengecilkan kode - 65k batas metode dalam dex
sumber
Saya mengalami masalah ini setelah mengaktifkan flag jumboMode di build (
dex.force.jumbo=true
). Semuanya bekerja dengan baik pada perangkat Android yang lebih baru, tetapi instalasi gagal di Gingerbread.Jadi jika aplikasi Anda memerlukan mode jumbo karena pembatasan 65k yang mengganggu, cobalah memotong beberapa kode / string yang tidak digunakan dan mengatur mode jumbo kembali ke false.
sumber
classes.dex
tidak sampai ke final.apk
. Menjalankangradlew --offline clean && gradlew --offline assembleDebug
hal-hal yang diperbaiki untuk saya setiap saat. Dari titik itu Anda dapat mulai meluncurkan aplikasi dari Android Studio lagi.EDIT: Sebelum apa yang saya katakan di atas pergi ke Task Manager dan bunuh semua
cmd.exe
danconhost.exe
proses (atau hanya yangaapt
macet). Kalau tidak,aapt
akan crash mulai sekarang ketika diluncurkan dari baris perintah dengan kesalahan terkenal-1073741819
.sumber
build.gradle
file proyek root Anda . Di antara dependensi buildscript harus adaclasspath 'com.android.tools.build:gradle:1.0.0-rc4'
.Saya mendapatkan kesalahan yang sama dan memperbaikinya dengan meningkatkan ukuran penyimpanan internal.
Penyimpanan internal awalnya diatur ke 32MB (saya tahu) dan kemudian saya menginstal beberapa apks di atasnya, yang telah meninggalkan lebih sedikit ruang daripada yang dibutuhkan untuk menginstal satu.
sumber
verifikasi ruang penyimpanan pada perangkat Anda
sumber
Saya telah menghapus aplikasi dan mendapatkan kesalahan INSTALL_FAILED_DEXOPT. Jika Anda bekerja dengan Android Studio / gradle: gradle clean melakukan trik untuk saya, Ceria.
sumber
di build.gradle ubah dikompilasi dan bangun ke versi terbaru. dan itu berhasil untuk saya.
================
sumber
banyak jawaban di sini, tapi mungkin bisa membantu seseorang yang saya punya masalah dengan perangkat nyata dan masalah dengan D8
coba tambahkan ini ke properti gradle.propu dan itu berfungsi untukku
sumber
Saya mendapatkan masalah ini ketika mencoba menginstal pada perangkat 2.3 (baik pada 4.0.3). Itu berakhir menjadi karena proyek lib saya menggunakan memiliki beberapa guci yang untuk hal-hal yang sudah di android misalnya HttpClient dan parser XML dll Melihat
logcat
membawa saya untuk menemukan ini seperti itu mengatakan itu melompat-lompat kelas karena mereka sudah menjadi menyajikan. Kesalahan asli yang bagus dan tidak membantu di sana!sumber
Saya mengalami pengujian kesalahan ini pada perangkat nyata. Mengosongkan cache / mencopot pemasangan, memulai kembali semuanya tidak berfungsi untuk saya, menghapus isi folder build tidak :) (Android studio)
sumber
Tidak ada solusi umum, Anda harus menemukan kesalahan yang dilaporkan pada Logcat Anda untuk dapat mengetahuinya. Kadang-kadang itu adalah kelas yang tidak bisa 'dihapus' karena penggunaan kelas tidak tersedia di Target API yang ditentukan misalnya. Atau bisa jadi kelas yang Anda rujuk dalam kode Anda, tetapi perpustakaan yang ada di dalamnya tidak sedang dikemas.
sumber
Pertimbangkan untuk menggunakan proguard untuk mengecilkan APK Anda. Saya memiliki masalah yang sama jika saya mencoba menginstal + 25MB besar APK pada perangkat Samsung Galaxy Ace 2.3.6 lama tanpa menyusut / mengoptimalkan kode dengan proguard.
Mode jumbo dan me-restart perangkat tidak berfungsi.
sumber
Dalam kasus saya, ini adalah bug di plugin kotlin, versi 1.1.51
https://youtrack.jetbrains.com/issue/KT-20034
Kesalahan ini muncul di perangkat lama (API 16).
Memperbaiki ini dengan menghapus @Parcelize annotations dan menggantinya dengan pembuat kode ini: https://github.com/nekocode/android-parcelable-intellij-plugin-kotlin
sumber
targetSdkVersion 22 // 17 ==========================> set angka ini kurang dari atau sama dengan versi Android OS pada perangkat mungkin membantu
sumber
Saya punya masalah ini ketika ada beberapa karakter Unicode dalam nama metode saya (karena, dari semua hal, salin / tempel dari file powerpoint) yang tidak disukai Dalvik. Anda dapat melihat ini dengan melihat keluaran Logcat ketika mencoba menginstal APK.
Ini pada perangkat nyata.
sumber
Dipecahkan dengan mengoreksi waktu tanggal pada telepon (itu beberapa tanggal standar 01.01.1980), dan membersihkan proyek.
sumber
Saya telah mengubah versi android versi 4 untuk dukungan sdk 21 dan ada kesalahan ini. Jadi saya kembali ke versi dukungan untuk versi lama (sebelum 21) dan berhasil. Kesalahan itu terjadi hanya di android 2.3
sumber
Saya telah mengalami masalah ini ketika saya mencoba memperbarui alat build baru 24.0.1. Koneksi internet terputus dan alat tidak berhasil diunduh, setelah itu saya mendapatkan kesalahan ini dan menghabiskan banyak waktu untuk menyelesaikannya. Tetapi ketika saya berhasil memperbarui alat membangun - masalah terpecahkan. Semoga berhasil.
sumber