Próbuję wdrożyć aplikację i czasami pojawia się ten błąd:
Failure
[INSTALL_FAILED_CONTAINER_ERROR]
Próbowałem go wygooglować, ale nie znalazłem, co oznacza błąd ani przez co jest spowodowany. Wdrażam przez IDE (IntelliJ), plik jest kopiowany na urządzenie do / data / local / tmp (nieukorzeniony Huawei Ideos, działający 2.2), ale menedżerowi pakietów to nie lubi. Przed zainstalowaniem apk wcześniej usunąłem aplikację z urządzenia. Upewniłem się również, że na urządzeniu nie ma starego pliku w / data / local / tmp. Nadal pojawia się ten błąd. Pakiet powinien być podpisany kluczem debugowania, ponieważ wdrażam za pośrednictwem IDE, „uruchamiając” aplikację.
$ 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]
Co to oznacza i jak go rozwiązać?
Edycja / aktualizacja:
Mogę uniknąć błędu, gdy nie zezwalam na zainstalowanie aplikacji na karcie SD, ustawienie
android:installLocation="internalOnly"
w manifeście. Jest ok do programowania, ale do produkcji, nie jest to, czego chcę - ponieważ moja aplikacja jest dość duża i ma 17 MB; dlatego wolę, aby był na sdcard. Jak kiedykolwiek móc zainstalować go w pamięci zewnętrznej bez rootowania (ponieważ jest to jedyny sposób, w jaki mogłem usunąć /mnt/secure/asec/smdl2tmp1.asec, który również wydaje się być jednym z rozwiązań).
źródło
pm install -f com.company.shop
?INSTALL_FAILED_CONTAINER_ERROR
problemu, dla niektórych z nich moja odpowiedź znajduje się tutaj: stackoverflow.com/a/30343659/313113Odpowiedzi:
usuń ten plik z urządzenia
/mnt/secure/asec/smdl2tmp1.asec
Edycja / aktualizacja autorstwa Mathiasa Conradta (OP):
Jeśli nie masz uprawnień roota, musisz zamontować sdcard i usunąć ją z komputera:
/.android_secure/smdl2tmp1.asec
źródło
Zmień lokalizację instalacji z
android:installLocation="preferExternal"
w
android:installLocation="auto"
w pliku AndroidManifest.xml projektu.
źródło
Jeśli używasz emulatora, edytuj go i dodaj więcej pamięci. Miałem problem taki jak ten i jedyne co zrobiłem, to edytować pamięć mojego AVD z 200 MB do 1000 MB i problem wydaje się znikać ... Powodzenia.
źródło
Oznacza to, że wcześniejsza instalacja była uszkodzona. Jeśli instalujesz na zewnętrznym, sugerowałbym sformatowanie karty SD i spróbuj ponownie.
źródło
Wielokrotnie miałem ten błąd. Odkryłem, że najprostszym sposobem uniknięcia błędu w całości jest po prostu sformatowanie karty SD. Korzystanie z wewnętrznych narzędzi telefonu lub emulatorów. Odkryłem, że automatycznie generowane karty SD lub nawet tworzenie własnego sdcard.iso nie powiodło się i powoduje ten błąd, chyba że zostanie sformatowany przez wewnętrzne narzędzia Androida.
źródło
U mnie było to spowodowane brakiem miejsca na karcie SD mojego emulatora. Pracowałem z dość dużym projektem i myślałem, że 40 MB wystarczy, ale zmieniłem go na 200 MB i problem zniknął.
źródło
Wystąpił ten sam błąd z różnymi
.apk
na Cyanogenmod 12.1 (Android 5.1.1) w mojej Note 8 z drugą partycją dla Link2SD. Udało mi się zainstalować aplikacje, wymuszając instalację przez adb jako root:adb root adb install -f myapp.apk
źródło
Otrzymałem ten komunikat o błędzie z Androida 5.0.1. Zmieniłem preferowaną lokalizację instalacji na „Wymienna karta SD” poprzez Ustawienia-> Aplikacje-> Preferowana lokalizacja instalacji.
Zmieniłem opcję z powrotem na „Niech system zdecyduje” i komunikat o błędzie zniknął.
źródło
Dla mnie był to język urządzenia. Zmieniłem język na arabski, żeby przetestować swoją aplikację. Wtedy otrzymałem ten błąd. Przywrócenie języka załatwiło sprawę.
źródło
android: installLocation = "auto" działa .. !!
Jeśli nie, raz sprawdź rozmiar zewnętrznej przestrzeni dyskowej. [Dostępna pamięć> rozmiar aplikacji] Jeśli przestrzeń dyskowa nie jest wystarczająca, również ten błąd jest zgłaszany.
źródło
Miałem podobny problem z emulatorem. Zniknął, gdy zmieniłem typ procesora emulatora z ARM na Intel.
źródło
w niektórych sytuacjach usunięcie
libs/android-support-v4.jar
generuje ten błąd.źródło
U mnie odinstalowanie kilku aplikacji rozwiązało problem. Gdy lokalna pamięć ma wystarczającą ilość pamięci, wdrożenie APK zakończyło się pomyślnie. Ale zwykle po prostu ponownie uruchamiam gadżet i instalacja jest zakończona. Mogą też pomóc niektóre programy, takie jak Clean Master. Po prostu często wyczyść nieużywane procesy i zamknij programy za pomocą Clean Master i uzyskaj wystarczającą ilość pamięci.
źródło
Ponowne uruchomienie urządzenia rozwiązało problem.
źródło