The INSTALL_FAILED_INSUFFICIENT_STORAGE
kesalahan adalah kutukan dari kehidupan setiap pengembang Android. Itu terjadi terlepas dari ukuran aplikasi, atau berapa banyak penyimpanan yang tersedia. Mem-boot ulang perangkat target memperbaiki masalah secara singkat, tetapi akan segera kembali. Ada ratusan (jika tidak ribuan) posting papan pesan dari orang-orang yang bertanya mengapa masalah terjadi, tetapi orang-orang di Google dengan putus asa diam mengenai masalah ini.
Ada solusi sederhana. Jika perangkat pengujian Anda menjalankan Android 2.2 atau lebih baru maka tambahkan android:installLocation
atribut ke file manifes aplikasi Anda, dengan nilainya "preferExternal"
. Ini akan memaksa aplikasi untuk diinstal pada penyimpanan eksternal perangkat, seperti kartu SD ponsel.
Sebagai contoh:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.andrewsmith.android.darkness"
android:installLocation="preferExternal"
Ini lebih merupakan bantuan band daripada perbaikan, dan mungkin tidak ideal jika Anda ingin aplikasi selesai dipasang pada memori internal perangkat. Tapi itu setidaknya akan membuat proses pengembangan jauh lebih sedikit membuat frustrasi.
sumber
Jawaban:
Ini hanya solusi sementara dan bukan perbaikan nyata.
Setelah ini terjadi pada saya dan tidak senang dengan tanggapan saat ini, saya pergi bekerja mencoba untuk mencari tahu dari sumber AOSP. Saya telah menemukan solusi NYATA .
Penjelasan
Pertama, sedikit latar belakang (disederhanakan) tentang cara Android menginstal dan memperbarui
Masalah yang sebagian besar dari kita alami terjadi ketika aplikasi diperbarui, tetapi menghapus APK lama gagal. Yang itu sendiri belum menyebabkan pembaruan gagal, tetapi itu menyebabkan ada dua file APK di
/data/app
.Lain kali Anda mencoba memperbarui aplikasi, sistem tidak dapat memindahkan file sementara karena tidak ada (1.apk) atau (2.apk) kosong. Karena File # renameTo (File) tidak melempar pengecualian, tetapi sebaliknya mengembalikan PackageManager boolean, itu tidak memiliki cara untuk mengatakan mengapa ia mengembalikan INSTALL_FAILED_INSUFFICIENT_STORAGE meskipun kegagalan tidak ada hubungannya dengan jumlah ruang kosong.
Larutan
Lari:
ATAU
Copot pemasangan aplikasi
Gunakan metode favorit Anda untuk menghapus KEDUA :
Pastikan tidak ada lagi yang menghalangi pemasangan di masa depan dengan cara yang sama. Dalam kasus saya, saya memiliki
/data/app-lib/<full.package.name>-1
direktori yang masih ada! Dalam hal ini, pemasangan ke kartu SD berfungsi, dan selanjutnya pindah ke memori internal. (Menciptakan/data/app-lib/<full.package.name>
tanpa-1
akhir.)Mengapa "solusi" lain berhasil
Kode untuk menginstal ke penyimpanan eksternal sangat berbeda yang tidak memiliki masalah yang sama
Menghapus instalan aplikasi hanya menghapus satu versi file APK
/data/app
. Itu sebabnya Anda dapat menginstalnya sekali, tetapi tidak memperbaruinya.Jumlah ruang kosong di emulator tidak benar-benar relevan ketika bug ini terjadi
sumber
function fix_app { adb shell "pm uninstall ${1}; rm -rf /data/app/${1}-*; su -c 'rm -rf /data/app-lib/${1}-*'" }
$ fix_app com.facebook.katana
android:installLocation="preferExternal"
tetapi semuanya sia-sia, tidak ada yang berhasil dalam kasus saya. Saya menggunakan perangkat nyata untuk pengujian. Apa solusinya dalam kasus ini?/data/local/tmp
Anda perlu meningkatkan kapasitas memori emulator Android. Ada dua cara untuk itu:
Klik kanan root Proyek Android Anda, pergi ke "Run As" dan kemudian pergi ke "Run Configurations ...". Temukan simpul "Aplikasi Android" di pohon di sebelah kiri, lalu pilih proyek Anda dan pergi ke tab "Target" di sisi kanan jendela mencari bidang "Opsi Opsi Perintah Emulator Tambahan" (kadang-kadang Anda ' Anda harus membuat jendela lebih besar) dan akhirnya menempelkan "-partition-size 1024" di sana. Klik Apply dan kemudian Run untuk menggunakan emulator Anda.
Pergi ke Preferensi Eclipse , dan kemudian pilih "Luncurkan" Tambahkan "-partisi-ukuran 1024" pada bidang "Opsi emulator default". Klik "Terapkan" dan gunakan emulator Anda seperti biasa.
sumber
Terima kasih telah mengirimkan pertanyaan ini. Saya memiliki beberapa wawasan tambahan yang dapat membantu beberapa pengembang.
Saya men-debug aplikasi saya di perangkat (bukan emulator). Perangkat ini memiliki 21 MB gratis
/data
(seperti diungkapkan oleh "df" ketika melakukan "adb shell") dan aplikasi saya hanya 5 MB. Namun, saya menemukan bahwa jika saya menghapus aplikasi lain pada perangkat (tanpa me-reboot ponsel atau memulai ulang adbd), INSTALL_FAILED_INSUFFICIENT_STORAGE akan hilang untuk sementara waktu dan kemudian kembali.Jadi sepertinya debugging aplikasi 5 MB saya membutuhkan lebih dari 20 MB ruang
/data
, dan juga ada sesuatu yang bocor setiap kali saya men-debug aplikasi saya.Jadi saya melakukan "adb shell" dan mendaftar
/data
direktori SELURUHDan saya melihat output 5000-line untuk melihat ke mana semua ruang akan pergi.
Saya menemukan sejumlah besar ruang kosong pada perangkat saya di
/data/klog
direktori dalam bentuk file log lama dari sesi debugging yang berumur beberapa bulan.Ini bukan file log saya: mereka dibuat oleh beberapa bagian dari infrastruktur Android.
Saya menghapusnya dan langsung menyimpan 58 MB yang tidak dikaitkan di aplikasi Pengaturan ke aplikasi tertentu. Saya memiliki perangkat kecil sehingga 58 MB sangat signifikan (sekitar 40%).
Sejauh ini, saya belum mendapatkan INSTALL_FAILED_INSUFFICIENT_STORAGE lagi setelah banyak berjalan. Mari berharap itu adalah masalah sebenarnya, meskipun OP menyarankan bahwa perangkatnya memiliki banyak ruang (tetapi tidak mengatakan berapa banyak).
Semoga beberapa dari Anda juga dapat melarikan diri INSTALL_FAILED_INSUFFICIENT_STORAGE dengan menghapus secara berkala
/data/klog/*
.Atau, Anda setidaknya bisa melakukan
ls -a -l -R
in/data
untuk melihat di mana semua ruang Anda pergi, jika memang ada beberapa masalah ruang (tersembunyi).sumber
ls
perintah menjadils -alR
du
mendaftar folder saja.Berikut ini membantu:
Buka shell ke perangkat
Arahkan ke direktori temp di mana APK yang masuk disalin pertama kali
Buat daftar file yang tersedia dan hapus yang diinginkan
Sejauh ini, ini dapat diandalkan untuk saya pada perangkat yang sebenarnya.
EDIT: Ini ternyata tidak dapat diandalkan sebagai solusi seperti yang di atas.
Saya mencoba sejumlah solusi. Tidak ada yang benar-benar membantu. Akhirnya saya menemukan aplikasi bernama SD Maid . Itu membantu.
Dikatakan fungsionalitas terbatas pada perangkat yang tidak di-unroot. Tambang saya di-root sehingga akan lebih baik untuk melihat mendengar dari orang-orang yang efektif itu dalam skenario itu dan jika itu hanya kebetulan yang bekerja untuk saya (itu adalah masalah yang tidak dapat diprediksi pula).
CATATAN: Saya tidak ada hubungannya dengan aplikasi. Baru menemukannya dengan pencarian.
sumber
Saya telah dipecahkan oleh termasuk
android:installLocation="auto"
dalam<manifest>
tag dalam file AndroidManifest.xml.sumber
Error: ADB exited with exit code 1 adb: failed to install build\app\outputs\apk\app.apk: Failure [INSTALL_FAILED_INSUFFICIENT_STORAGE] Error launching application on Android SDK built for x86.
Saya telah menambahkan baris tambahan ke file manifes aplikasi, yaitu
android:installLocation="preferExternal"
. dengan menggunakan garis ini memaksa untuk menginstal aplikasi ke penyimpanan eksternal. lihat contoh di bawah ini,sumber
Masalah terkait pada emulator adalah ketika tidak ada ruang yang tersisa di
/data
partisi.Sebagai contoh,
Berikut ini adalah contoh tampilan
/data/app
direktori:Saya menghapus file APK ekstra . Tampaknya pada setiap instalasi Anda mendapatkan file APK baru. Hapus saja file APK tambahan.
Sebagai contoh,
sumber
Dalam kasus saya, kegagalan disebabkan oleh
com.android.providers.media
aplikasi. Saya menghadapi ini pada emulator android x86. Apa yang saya lakukan:Ruang kosong terlalu rendah aktif
/data
Hampir semua dikonsumsi oleh aplikasi tunggal! Ini aplikasi sistem jadi saya anggap lebih baik untuk tidak menghapusnya. Alih-alih, saya membersihkan data aplikasi.
Disk telah dihapus dan aplikasi berhasil diinstal.
sumber
Saya merasa agak aneh menulis ini, tetapi saya tidak dapat 100% yakin bahwa itu tidak benar dalam beberapa kasus (itu berhasil untuk saya). Jika Anda memiliki gejala berikut:
Lalu, coba ini:
Saya mencabut kabel telepon saya dan membiarkannya istirahat SELURUH HARI. Baterai saya sedikit habis. Setelah ini, saya menghubungkan kembali dan mulai men-debug lagi. Semuanya bekerja dengan baik kali ini! Dan maksud saya benar-benar BENAR-BENAR baik, sama seperti sebelumnya.
Apakah mungkin kesalahan ini disebabkan oleh beberapa hal yang berhubungan dengan baterai ? Masih terasa aneh berpikir seperti ini, tetapi sekarang saya terus memutus telepon saya setiap sekarang dan kemudian (dan untuk malam) dan masalahnya tidak kembali.
sumber
Menjawab posting pertama dari topik ini ...
Gejala: Beberapa aplikasi tidak menginstal, mengatakan tidak ada ruang dan dalam kenyataan ada banyak ruang kosong pada penyimpanan internal dan eksternal !!! Solusi: nonaktifkan instalasi eksternal secara default.
Mengatur pemasangan eksternal dengan defaut dengan ini:
Membuat penginstalan menjadi mustahil pada banyak aplikasi yang tidak dapat menginstal secara eksternal (seperti adblock + atau lebih)
Maka solusinya adalah
Atau
sumber
Saya mencoba yang berikut ini:
Periksa apakah itu bekerja sama dengan Anda.
sumber
Samsung Galaxy Ace mengiklankan 158 MB penyimpanan internal dalam spesifikasinya, tetapi aplikasi inti dan layanan mengkonsumsi sekitar 110 MB itu (saya menggunakan task manager pada perangkat untuk memeriksa ini). Aplikasi saya adalah 52 MB, karena memiliki banyak aset. Setelah saya menghapus beberapa dari mereka hingga 45 MB, aplikasi berhasil menginstal tanpa masalah. Perangkat masih mengingatkan saya bahwa penyimpanan internal hampir penuh, dan saya harus menghapus beberapa aplikasi, walaupun saya hanya menginstal satu aplikasi.
Setelah menginstal versi rilis bundel .apk dan kemudian mencopotnya, perangkat saya menampilkan 99 MB ruang kosong, jadi mungkin informasi debug yang mengacaukan perangkat. Lihat jawaban Louis Semprini .
sumber
Dalam Eclipse,
Run -- > Debug Configurations --> Select "target",
dan pilih target emulator yang disukai untuk diluncurkan.Kemudian Di bawah itu "opsi opsi perintah emulator tambahan," tambahkan ini:
Kemudian TUTUP emulator dan klik ikon debug, yang akan meluncurkan emulator yang Anda pilih.
Semoga Membantu ...!
sumber
Android Virtual Device Manager
pengguna. Anda dapat menetapkan ukuran partisi 1024 sebagai "Penyimpanan Internal" yang mewakili kedisk.dataPartion.size
Saya mengalami masalah ini dengan Nexus 4 baru saya dan APK yang dibuat dengan Adobe AIR. Saya sudah memiliki android: installLocation = "preferExternal" di manifes saya. Saya perhatikan saya juga menelepon
adb install
dengan-s
opsi (Instal paket pada penyimpanan massal bersama seperti sdcard.) Yang sepertinya berlebihan.Menghapus
-s
bendera dariadb install
memperbaiki masalah untuk saya.sumber
Karena masalah ini masih ada, saya pikir saya akan menambahkan sesuatu ke jawaban Raczo untuk tujuan pengembangan. Jika Anda tidak menggunakan plugin Eclipse atau karena alasan apa pun Anda tidak memiliki sumbernya, tetapi hanya .apk, Anda dapat menambah ukuran partisi dari baris perintah menggunakan opsi yang sama saat Anda meluncurkan emulator:
Sejauh yang saya tahu, opsi ini tidak didokumentasikan di developer.android.com, jadi saya pikir saya akan mempostingnya di sini sehingga orang mungkin menemukan solusi ini.
sumber
avd
Saya menemukan pertanyaan ini karena saya mendapatkan kesalahan ini menggunakan Mesin Sideload Wonder untuk menginstal aplikasi ke telepon saya yang sebenarnya. Saya menemukan masalahnya adalah saya memiliki beberapa file .apk di direktori / payload. Saya pikir ini adalah sesuatu yang didukung, tetapi ketika saya menghapus semua kecuali satu. Apk, kesalahan hilang.
sumber
Hapus instalan aplikasi dari emulator baik dari baris perintah atau buka pengaturan dan hapus instalan aplikasi. Ini akan menghentikan kesalahan dari datang.
sumber
Jika Anda menggunakan perangkat nyata, Anda hanya kehabisan memori internal. Buka saja pengaturan Android -> Aplikasi , dan pindahkan beberapa aplikasi ke kartu SD atau copot pemasangan beberapa aplikasi.
Jika Anda menggunakan emulator, lihat jawaban Raczo .
sumber
Saya menemukan kesalahan yang sama ketika saya mencoba menginstal sekitar 50 aplikasi dalam direktori kartu SD menggunakan shell ADB setelah pembaruan ROM lengkap:
Beberapa dari mereka terpasang, tetapi banyak yang gagal dengan kesalahan INSTALL_FAILED_INSUFFICIENT_STORAGE. Semua aplikasi yang gagal memiliki ruang dalam namanya. Saya batch mengubah nama mereka dan mencoba lagi. Semuanya bekerja saat ini. Saya tidak melakukan reboot atau apa pun. Mungkin ini bukan masalah yang kalian hadapi, tapi ini mungkin membantu seseorang mencari dengan masalah yang sama seperti yang aku hadapi.
sumber
Solusi emulator
Buka
.Android
direktori Anda . Biasanya di direktori home Anda. Lalu pergi keavd
dan kemudian buka direktori yang memiliki nama avd yang ingin Anda ubah.Sekarang edit
config.ini
file dan tambahkan baris berikut atau ubah baris berikut:disk.dataPartition.size=1024
Di mana
1024
ukuran yang ingin Anda gunakan dalam MB. Simpan file dan kemudian mulai emulator Anda denganwipe user data
dicentang. Emulator Anda sekarang harus memiliki ukuran baru.sumber
Solusinya sederhana.
Buka Manajer AVD. Edit AVD Anda.
Turun di bagian perangkat keras, ada beberapa properti terdaftar dengan "Baru ..." dan "Hapus" di sebelah kanannya.
Tekan Baru. Pilih ukuran Partisi Data. Setel ke "512MB" (MB diperlukan). Dan kamu sudah selesai. jika Anda masih mendapatkan masalah, tingkatkan partisi sistem dan cache Anda juga menggunakan metode yang sama.
Semuanya didokumentasikan di sini: http://developer.android.com/guide/developing/devices/managing-avds.html
sumber
Pastikan Anda tidak menghubungkan perangkat Android Anda dengan usb saat mencoba menjalankan emulator
sumber
Jika Anda menjalankan aplikasi pada emulator, dan jika masalah ini terus berlanjut, periksa manajer notifikasi Anda. Jika itu menunjukkan kepada Anda ikon dan pemberitahuan tentang "Memori telepon penuh", itu berarti Anda telah menginstal begitu banyak aplikasi pada emulator Anda. Copot beberapa aplikasi yang saat ini tidak Anda inginkan dari "Pengaturan >> Kelola Aplikasi >> Pilih Aplikasi >> Copot".
Set itu.
Sekarang jalankan kembali programnya.
sumber
Saya mendapatkan kesalahan ini hari ini, ketika menggunakan telepon saya untuk pengujian / debugging dengan Eclipse.
Kesalahan saya adalah saya menggunakan karakter khusus Norwegia ("æ", "ø", "å") dalam nama aplikasi. Ketika saya refactored nama aplikasi (menggunakan "o" bukannya "ø") aplikasi diinstal dengan benar ..
Mungkin bukan masalah Anda, tetapi bisa diperhatikan agar orang lain mendapatkan kesalahan yang sama.
sumber
Setelah mencoba semua yang lain di utas ini, saya menemukan masalah saya sendiri karena jalur ke file .apk terlalu panjang. Jadi saya menuju ke direktori di mana .apk berada dan melakukannya:
dari pada
Dan itu berhasil ... dipasang dengan baik.
Hanya berpikir ini mungkin bisa membantu orang lain.
sumber
Penanganan masalah:
Kompilasi sebagai 2.1 tanpa
android:installLocation="preferExternal"
.BAIK?
Kompilasi sebagai 2.2 termasuk
android:installLocation="preferExternal"
.Ini masih akan menginstal pada versi SDK kurang dari 8 (tag XML diabaikan).
sumber
Dalam kasus saya itu diperbaiki dengan meningkatkan memori gerhana yang diperluas, dengan mengubah nilai -Xmx768m di eclipse.ini
sumber
Saya akhirnya menghapus aplikasi dari perangkat dan kemudian menginstalnya kembali di Eclipse. Ini adalah masalah yang saya dapatkan sepanjang waktu di perangkat saya dari penggunaan biasa, tapi hari ini saya mendapat pesan dari pengembangan.
sumber
Saya juga menghadapi masalah yang sama, dan saya melakukan "Reset data pabrik", dan itu bekerja dengan baik setelah itu.
sumber
Saya tidak memiliki akses root pada ponsel saya dan tidak siap untuk aplikasi saya diinstal pada kartu SD. Ruang 15 MB tersedia
/data/
dan aplikasi saya di bawah 2 MB.Untuk sementara saya bisa; membersihkan proyek Eclipse dan me-restart telepon, tetapi akhirnya berhenti bekerja (mungkin setelah pembaruan).
Membersihkan cache aplikasi saya telah memecahkan masalah bagi saya dan tidak memerlukan restart ponsel atau uninstall aplikasi.
Ada beberapa aplikasi di pasaran yang dapat Anda gunakan untuk menghapus cache beberapa aplikasi sekaligus. Cari "bersih".
sumber