Was bedeutet das: Fehler [INSTALL_FAILED_CONTAINER_ERROR]?

129

Ich versuche meine App bereitzustellen und erhalte manchmal folgende Fehlermeldung:

Failure 
[INSTALL_FAILED_CONTAINER_ERROR] 

Ich habe versucht, es zu googeln, finde aber nicht heraus, was der Fehler bedeutet oder woran er liegt. Ich stelle über IDE (IntelliJ) bereit, dass die Datei auf das Gerät nach / data / local / tmp kopiert wird (Huawei Ideos ohne Rootberechtigung, Version 2.2), aber der Paketmanager scheint es nicht zu mögen. Vor der Installation der apk habe ich die App bereits vorher vom Gerät entfernt. Ich habe auch sichergestellt, dass keine alte Datei unter / data / local / tmp auf dem Gerät vorhanden ist. Trotzdem erhalte ich diesen Fehler jetzt. Das Paket sollte mit dem Debug-Schlüssel signiert sein, da ich über IDE durch Ausführen der App bereitstelle.

$ 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]

Was bedeutet es und wie kann es behoben werden?

Bearbeiten / Aktualisieren:

Ich kann den Fehler vermeiden, wenn ich nicht zulasse, dass die App auf der SD-Karte installiert wird

android:installLocation="internalOnly"

im Manifest. Es ist in Ordnung für die Entwicklung, aber für die Produktion ist es nicht wirklich das, was ich will - da meine App mit 17 MB ziemlich groß ist; deshalb bevorzuge ich es auf sdcard zu sein. Wie kann man es jemals auf dem externen Speicher installieren, ohne zu rooten (da dies die einzige Möglichkeit ist, /mnt/secure/asec/smdl2tmp1.asec zu löschen, was ebenfalls eine Lösung zu sein scheint).

Mathias Conradt
quelle
Nur aus Neugier: Können Sie es von installieren pm install -f com.company.shop?
Jakub Czaplicki
Es gibt verschiedene Variationen des INSTALL_FAILED_CONTAINER_ERRORProblems, für einige von ihnen siehe meine Antwort hier: stackoverflow.com/a/30343659/313113
Bitek
Für mich war es so einfach wie der Emulator "kein Speicherplatz mehr" (???) und ich musste Daten im AVD Manager löschen.
EpicPandaForce

Antworten:

44

Entfernen Sie diese Datei von Ihrem Gerät

/mnt/secure/asec/smdl2tmp1.asec

Bearbeiten / Aktualisieren von Mathias Conradt (OP):

Wenn Sie keinen Root-Zugriff haben, müssen Sie die SD-Karte mounten und über den PC entfernen:

/.android_secure/smdl2tmp1.asec
Mathias Conradt
quelle
3
Mein Gerät ist jedoch nicht gerootet. Wenn Sie sich den sicheren Ordner ansehen, hat nur root Zugriff. Ich konnte die App vorher ausführen, erst jetzt seit einiger Zeit, kann sie nicht mehr ausführen und es gibt den obigen Fehler.
Mathias Conradt
1
Übrigens - es gibt auch einen Ordner / mnt / asec /, den ich mit Nicht-Root erreichen kann, aber der ist leer
Mathias Conradt
3
@ Jazz Das ist mir heute passiert. Ich würde wirklich gerne wissen warum / worum es geht. Datei manuell löschen? Warum konnte Eclipse dies nicht tun? Ist das ein Telefonfehler?
Erik
1
Ich habe dieses Problem. Ich kann die Dateien / Ordner auf meinem Mac nicht sehen. Gibt es einen anderen Weg?
SleepNot
14
Das hat funktioniert, aber können Sie erklären, warum es funktioniert? Was ist in der mysteriösen smdl2tmp1.asec-Datei?
Alexander Pacha
222

Ändern Sie den Installationsort von

android:installLocation="preferExternal"

in

android:installLocation="auto"

in der AndroidManifest.xml Ihres Projekts.

Rene
quelle
12
Das hat es für mich getan. Vielen Dank!
Jim McKeeth
Ja, das hat es auch für mich getan. Vielen Dank!
Senthil Kumaran
22
aber ich möchte lieber extern ...? Wie kann ich das beheben?
Aiden Fry
2
@Sameer nein, dies tritt auch auf realen Geräten auf - ist aber inkonsistent. Die wichtigsten sind HTC Desire S- und Nexus-Geräte.
Aiden Fry
1
@AidenFry Verwenden Sie die Lösung user2445968, wenn Sie PreferExExternal beibehalten möchten.
LG
32

Wenn Sie einen Emulator verwenden, bearbeiten Sie ihn und fügen Sie mehr Speicher hinzu. Ich hatte ein Problem wie dieses und alles, was ich getan habe, war, den Speicher meiner AVD von 200 MB auf 1000 MB zu bearbeiten, und das Problem scheint zu verschwinden ... Viel Glück.

Dan
quelle
Ja, bei mir ist es genauso passiert. Daumen hoch :)
NaXir
Zusätzlich zur Vergrößerung des Speichers musste ich auch Benutzerdaten löschen und erst danach wurde die neue Größe reflektiert und der Fehler verschwand.
Varun
2
Darf ich vermuten, dass Sie sich auf internen Speicher und nicht auf RAM beziehen?
Jonny
1
Ich habe den Speicher meiner AVD vergrößert und dann die Daten gelöscht !! und jetzt funktioniert es.
Treffen Sie Vora
7

Dies bedeutet, dass eine frühere Installation beschädigt war. Wenn Sie auf einem externen Gerät installieren, würde ich vorschlagen, dass Sie die SD-Karte formatieren und es erneut versuchen.

dalbator
quelle
6

Ich habe diesen Fehler wiederholt gehabt. Ich habe den einfachsten Weg gefunden, um den Fehler in seiner Gesamtheit zu vermeiden, indem ich einfach die SD-Karte formatiere. Verwenden der internen Tools des Telefons oder der Emulatoren. Ich habe festgestellt, dass die automatisch generierten SD-Karten oder sogar das Erstellen Ihrer eigenen sdcard.iso fehlschlagen und diesen Fehler verursachen, sofern sie nicht von den internen Android-Tools erstellt wurden.

user2445968
quelle
1
Willkommen bei Stack Overflow! Danke für deinen Beitrag! Bitte verwenden Sie keine Signaturen / Slogans in Ihren Posts. Ihre Benutzerbox zählt als Ihre Signatur, und Sie können Ihr Profil verwenden, um Informationen über sich selbst zu veröffentlichen, die Sie mögen. FAQ zu Unterschriften / Slogans
Andrew Barber
Dies wurde mit der gleichen Lösung behoben, da das Problem durch einen Fehler beim Schreiben auf die SDCard verursacht wird. Es ist besser als das Workaorund von Rene, wenn Sie Android behalten möchten: installLocation = "PreferExternal".
LG
Bestätigen. Fehler auf SD war der Grund für mich. Ich habe es getestet, indem ich "lieber extern" aus dem Manifest entfernt habe - es ist in Ordnung installiert.
DJDance
4

Für mich war dies auf einen Platzmangel auf der SD-Karte meines Emulators zurückzuführen. Ich arbeitete mit einem ziemlich großen Projekt und hatte gedacht, 40 MB wären genug, aber ich änderte es auf 200 MB und das Problem verschwand.

Noisecapella
quelle
4

Hatte den gleichen Fehler mit verschiedenen .apkauf Cyanogenmod 12.1 (Android 5.1.1) auf meinem Note 8 mit einer zweiten Partition für Link2SD. Ich konnte die Apps installieren, indem ich die Installation über adb als root erzwang:

adb root
adb install -f myapp.apk
Zu groß.
quelle
3

Ich habe diese Fehlermeldung von Android 5.0.1 erhalten. Ich hatte den bevorzugten Installationsort über Einstellungen-> Apps-> Bevorzugter Installationsort in "Wechselbare SD-Karte" geändert.

Ich habe die Option wieder auf "Das System entscheiden lassen" geändert und die Fehlermeldung ist verschwunden.

Nyxee
quelle
1
Dies schien die Lösung für mich zu sein, auf der Cyanogenmod 12 (Android 5.0.2) ausgeführt wurde. Dieses Öffnen schien die App zu zwingen , auf der austauschbaren SD-Karte zu installieren, obwohl im Manifest der App angegeben war, dass sie dort nicht installiert werden konnte.
Sam
1

Für mich war es die Gerätesprache. Ich habe die Sprache auf Arabisch umgestellt, um meine Bewerbung zu testen. Dann habe ich diesen Fehler bekommen. Das Zurücksetzen der Sprache hat den Trick getan.

Elyess Abouda
quelle
1

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

Wenn nicht, überprüfen Sie einmal die Größe Ihres externen Speicherplatzes. [Verfügbarer Speicher> App-Größe] Wenn der Speicherplatz nicht ausreicht, wird auch dieser Fehler ausgelöst.

Mallikarjungouda Annigeri
quelle
0

Ich hatte ein ähnliches Problem mit dem Emulator. Es war weg, als ich den CPU-Typ des Emulators von ARM auf Intel änderte.

Wytas
quelle
Dies hilft dem OP bei seinem Problem nicht wirklich, da es darum geht, es auf realen Geräten zum Laufen zu bringen, von denen viele noch ARM-CPUs verwenden.
James Green
0

In einigen Situationen führt das Entfernen von zu libs/android-support-v4.jardiesem Fehler.

Amir Saniyan
quelle
0

Für mich löste eine Deinstallation mehrerer Anwendungen das Problem. Wenn ein lokaler Speicher über genügend Speicher verfügt, wurde die Bereitstellung von APK erfolgreich abgeschlossen. Aber normalerweise starte ich einfach ein Gadget neu und die Installation ist abgeschlossen. Einige Programme wie Clean Master können ebenfalls hilfreich sein. Löschen Sie einfach oft ungenutzte Prozesse und schließen Sie Programme mit Clean Master, um genügend Speicherplatz zu erhalten.

CoolMind
quelle
0

Durch einen Neustart meines Geräts wurde das Problem für mich behoben.

theOzmic
quelle