Apa artinya ini: Kegagalan [INSTALL_FAILED_CONTAINER_ERROR]?


129

Saya mencoba untuk menggunakan aplikasi saya dan terkadang mendapatkan kesalahan ini:

Failure 
[INSTALL_FAILED_CONTAINER_ERROR] 

Saya mencoba untuk google tetapi tidak menemukan apa artinya kesalahan atau apa yang disebabkannya. Saya menggunakan via IDE (IntelliJ) file tersebut akan disalin ke perangkat ke / data / local / tmp (Huawei Ideos tanpa root, menjalankan 2.2), tetapi manajer paket sepertinya tidak menyukainya. Sebelum menginstal apk, saya sudah menghapus aplikasi dari perangkat sebelumnya. Saya juga memastikan tidak ada file lama di bawah / data / local / tmp pada perangkat. Masih saya mendapatkan kesalahan ini sekarang. Paket harus ditandatangani dengan kunci debug, karena saya menggunakan via IDE dengan 'menjalankan' aplikasi.

$ pwd 
/data/local/tmp 
$ ls -l 
-rw-rw-rw- shell    shell    17257686 2011-04-21 20:31 
com.company.shop 
$ pm install -r com.company.shop 
        pkg: com.company.shop 
Failure [INSTALL_FAILED_CONTAINER_ERROR]

Apa artinya dan bagaimana mengatasinya?

Edit / Perbarui:

Saya dapat menghindari kesalahan saat tidak mengizinkan aplikasi diinstal pada sdcard, pengaturan

android:installLocation="internalOnly"

dalam manifes. Tidak apa-apa untuk pengembangan, tetapi untuk produksi, itu tidak benar-benar apa yang saya inginkan - karena aplikasi saya cukup besar dengan 17MB; oleh karena itu saya lebih suka menggunakan sdcard. Bagaimana cara menginstalnya pada memori eksternal tanpa rooting (karena ini adalah satu-satunya cara saya bisa menghapus /mnt/secure/asec/smdl2tmp1.asec, yang tampaknya menjadi salah satu solusi juga).


Karena penasaran: dapatkah Anda menginstalnya pm install -f com.company.shop?
Jakub Czaplicki

Ada beberapa variasi INSTALL_FAILED_CONTAINER_ERRORmasalah, untuk beberapa dari mereka lihat jawaban saya di sini: stackoverflow.com/a/30343659/313113
bitek

Bagi saya, itu sesederhana emulator "kehabisan ruang" (???) dan saya harus menghapus data di AVD Manager.
EpicPandaForce

Jawaban:


44

hapus file ini dari perangkat Anda

/mnt/secure/asec/smdl2tmp1.asec

Edit / Perbarui oleh Mathias Conradt (OP):

Jika Anda tidak memiliki akses root, Anda perlu me-mount sdcard dan menghapusnya melalui pc:

/.android_secure/smdl2tmp1.asec

3
tetapi perangkat saya tidak dicabut, dan melihat folder yang aman, hanya root yang memiliki akses. Saya dapat menjalankan aplikasi sebelumnya, hanya sekarang sejak beberapa saat, tidak dapat menjalankannya dan memberikan kesalahan di atas.
Mathias Conradt

1
btw - ada juga folder / mnt / asec / yang bisa saya jangkau dengan non-root, tapi itu kosong
Mathias Conradt

3
@Jazz Ini terjadi padaku hari ini. Saya benar-benar ingin tahu mengapa / tentang apa ini. Hapus file secara manual? Mengapa gerhana tidak bisa melakukan ini? Apakah ini bug telepon?
Erik

1
Saya mengalami masalah ini. saya tidak dapat melihat file / folder menggunakan Mac saya. adakah cara lain?
SleepNot

14
Ini berhasil, tetapi bisakah Anda menjelaskan, mengapa bisa? Apa yang ada di file smdl2tmp1.asec yang misterius?
Alexander Pacha

222

Ubah lokasi pemasangan dari

android:installLocation="preferExternal"

ke

android:installLocation="auto"

di AndroidManifest.xml proyek Anda.


12
Inilah yang melakukannya untuk saya. Terima kasih!
Jim McKeeth

Ya, ini juga untuk saya. Terima kasih!
Senthil Kumaran

22
tetapi saya ingin preferEternal ...? Bagaimana cara memperbaikinya?
Aiden Fry

2
@Sameer nggak, ini juga terjadi pada perangkat nyata - tetapi tidak konsisten. Yang utama adalah perangkat HTC Desire S dan Nexus.
Aiden Fry

1
@AidenFry Gunakan solusi user2445968 jika Anda ingin menyimpan preferExternal.
LG

32

Jika Anda menggunakan emulator, edit dan tambahkan lebih banyak memori. Saya mempunyai masalah seperti ini dan yang saya lakukan hanyalah mengedit memori AVD saya dari 200 MB menjadi 1000 MB dan masalahnya sepertinya hilang ... Semoga Sukses.


Ya itu terjadi sama dengan saya. Jempol ke atas :)
NaXir

Selain menambah memori saya juga harus menghapus data pengguna dan hanya setelah itu, ukuran baru tercermin dan kesalahan hilang.
Varun

2
Boleh saya kira Anda merujuk ke Penyimpanan Internal, dan bukan RAM?
Jonny

1
Saya meningkatkan memori AVD saya, dan kemudian menghapus data !! dan sekarang berhasil.
Temui Vora

7

Ini berarti ada instalasi sebelumnya yang rusak. Jika Anda menginstal pada eksternal saya sarankan Anda memformat kartu sd coba lagi.


6

Saya memiliki kesalahan ini berulang kali. Saya telah menemukan cara paling sederhana untuk menghindari kesalahan secara keseluruhan adalah dengan hanya memformat kartu SD. Menggunakan telepon atau alat internal emulator. Saya telah menemukan bahwa kartu SD yang dihasilkan secara otomatis atau bahkan membuat sdcard.iso Anda gagal dan menyebabkan kesalahan ini kecuali dibentuk oleh alat android internal.


1
Selamat Datang di Stack Overflow! Terima kasih untuk kiriman Anda! Tolong jangan gunakan tanda tangan / tagline dalam posting Anda. Kotak pengguna Anda dianggap sebagai tanda tangan Anda, dan Anda dapat menggunakan profil Anda untuk memposting informasi tentang diri Anda sendiri. FAQ tentang tanda tangan / tagline
Andrew Barber

Diselesaikan ini dengan solusi yang sama, karena masalahnya disebabkan oleh penulisan kesalahan ke SDCard, itu lebih baik daripada workaorund dari Rene jika Anda ingin tetap android: installLocation = "preferExternal".
LG

Konfirmasi. Kesalahan pada SD adalah alasan bagi saya. Saya mengujinya menghapus "prefer external" dari manifes - sudah terpasang ok.
djdance

4

Bagi saya ini disebabkan oleh kurangnya ruang pada kartu SD emulator saya. Saya bekerja dengan proyek yang cukup besar dan saya pikir 40 mb sudah cukup, tetapi saya mengubahnya menjadi 200 mb dan masalahnya hilang.


4

Memiliki kesalahan yang sama dengan berbagai .apkdi Cyanogenmod 12.1 (Android 5.1.1) pada Note 8 saya dengan partisi kedua untuk Link2SD. Saya dapat menginstal aplikasi dengan memaksa instalasi melalui adb sebagai root:

adb root
adb install -f myapp.apk

3

Saya mendapat pesan kesalahan ini dari Android 5.0.1. Saya telah mengubah lokasi pemasangan yang disukai menjadi "Kartu SD yang dapat dilepas" melalui Pengaturan-> Aplikasi-> Lokasi Instalasi Pilihan.

Saya mengubah opsi kembali ke "Biarkan sistem memutuskan" dan pesan kesalahan hilang.


1
Ini sepertinya menjadi solusi bagi saya menjalankan Cyanogenmod 12 (Android 5.0.2). Pembukaan itu tampaknya memaksa aplikasi untuk memasang pada kartu SD yang dapat dilepas meskipun manifes aplikasi menentukan bahwa itu tidak dapat diinstal di sana.
Sam

1

Bagi saya, itu bahasa perangkat. Saya menggunakan bahasa Arab untuk menguji aplikasi saya. Lalu saya mendapat kesalahan ini. Mengembalikan bahasa itu berhasil.


1

android: installLocation = "auto" berfungsi .. !!

Jika Tidak, Sekali periksa ukuran ruang penyimpanan eksternal Anda. [Memori yang tersedia> ukuran aplikasi] Jika ruang penyimpanan tidak cukup maka kesalahan ini juga terjadi.


0

Saya punya masalah serupa dengan emulator. Itu hilang ketika saya mengubah jenis CPU emulator dari ARM ke Intel.


Ini tidak benar-benar membantu OP dengan masalah mereka, karena kekhawatiran mereka membuatnya bekerja pada perangkat dunia nyata, banyak yang masih menggunakan CPU ARM.
James Green

0

dalam beberapa situasi, menghapus libs/android-support-v4.jarmenghasilkan kesalahan ini.


0

Bagi saya, penghapusan beberapa aplikasi menyelesaikan masalah. Ketika penyimpanan lokal memiliki cukup memori, penyebaran APK selesai dengan sukses. Tapi biasanya saya cukup me-restart gadget, dan instalasi selesai. Juga, beberapa program seperti Master Bersih dapat membantu. Cukup sering bersihkan proses yang tidak berguna dan tutup program dengan Clean Master dan dapatkan memori yang cukup.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.