이것이 의미하는 것은 : 실패 [INSTALL_FAILED_CONTAINER_ERROR]?


129

앱을 배포하려고 할 때 가끔이 오류가 발생합니다.

Failure 
[INSTALL_FAILED_CONTAINER_ERROR] 

나는 그것을 시도했지만 오류의 의미 또는 원인이 무엇인지 찾지 못했습니다. IDE (IntelliJ)를 통해 파일을 장치에 / data / local / tmp (루트되지 않은 Huawei Ideos, 2.2 실행)로 복사하지만 패키지 관리자는 그것을 좋아하지 않는 것 같습니다. APK를 설치하기 전에 미리 장치에서 앱을 제거했습니다. 또한 장치의 / data / local / tmp 아래에 오래된 파일이 없는지 확인했습니다. 여전히이 오류가 발생합니다. IDE를 통해 앱을 '실행'하여 배포하기 때문에 패키지는 디버그 키로 서명해야합니다.

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

그것은 무엇을 의미하고 어떻게 해결합니까?

편집 / 업데이트 :

sdcard에 앱을 설치하지 못하게 할 때 오류를 피할 수 있습니다.

android:installLocation="internalOnly"

매니페스트에서. 개발에는 문제가 없지만 프로덕션 환경에서는 실제로 원하는 것이 아닙니다. 내 앱의 크기가 17MB로 상당히 크기 때문에; 따라서 나는 그것이 sdcard에있는 것을 선호합니다. 루팅없이 외부 메모리에 설치할 수있는 방법 (/mnt/secure/asec/smdl2tmp1.asec를 삭제할 수있는 유일한 방법이기 때문에 하나의 솔루션 인 것처럼 보입니다).


그냥 호기심에서 : 당신은 그것을 설치할 수 pm install -f com.company.shop있습니까?
— Jakub Czaplicki

INSTALL_FAILED_CONTAINER_ERROR문제에 대한 몇 가지 변형이 있습니다. 그들 중 일부는 여기에 내 대답을 참조하십시오. stackoverflow.com/a/30343659/313113
— bitek

나를 위해, 에뮬레이터가 "공간 부족"(???)만큼 간단했으며 AVD 관리자에서 데이터를 삭제해야했습니다.
— EpicPandaForce

답변:


44

장치에서이 파일을 제거하십시오

/mnt/secure/asec/smdl2tmp1.asec

Mathias Conradt (OP)의 편집 / 업데이트 :

루트 액세스 권한이 없으면 sdcard를 마운트하고 pc를 통해 제거해야합니다.

/.android_secure/smdl2tmp1.asec

3
그러나 내 장치는 루팅되지 않았으며 보안 폴더를 보면 루트 만 액세스 할 수 있습니다. 얼마 전부터 만 앱을 실행할 수 있었고 실행할 수 없으며 위의 오류가 발생합니다.
— Mathias Conradt

1
btw-루트가 아닌 것으로 접근 할 수있는 / mnt / asec / 폴더도 있지만 비어 있습니다
— Mathias Conradt

3
@ 재즈 오늘 나에게 일어났다. 나는 왜 이것이 무엇인지 알고 싶습니다. 파일을 수동으로 삭제 하시겠습니까? 왜 이클립스를 할 수 없었습니까? 이것은 전화 버그입니까?
— Erik

1
이 문제가 발생했습니다. Mac을 사용하는 파일 / 폴더를 볼 수 없습니다. 다른 방법이 있습니까?
— SleepNot

14
이것은 효과가 있었지만 왜 설명 할 수 있습니까? 신비한 smdl2tmp1.asec 파일에 무엇입니까?
— Alexander Pacha

222

설치 위치를 다음에서 변경하십시오.

android:installLocation="preferExternal"

으로

android:installLocation="auto"

프로젝트의 AndroidManifest.xml에


12
이것이 나를 위해 한 일입니다. 감사!
— Jim McKeeth

예, 이것도 저를 위해했습니다. 감사!
— Senthil Kumaran

22
하지만 저는 외부를 선호하고 싶습니다 ...? 이 문제를 해결하는 방법?
— Aiden Fry

2
@ 동일하지 않습니다. 실제 장치에서도 발생하지만 일관성이 없습니다. 주요한 것은 HTC Desire S와 Nexus 기기입니다.
— Aiden Fry

1
@AidenFry preferExternal을 유지하려면 user2445968 솔루션을 사용하십시오.
— LG

32

에뮬레이터를 사용하는 경우 에뮬레이터를 편집하고 메모리를 추가하십시오. 나는 이것과 같은 문제가 있었고 AVD의 메모리를 200MB에서 1000MB로 편집하기 만하면 문제가 사라지는 것처럼 보입니다 ... 행운.


그래, 나도 마찬가지였다. Thumbs up :)
— NaXir

메모리를 늘리는 것 외에도 사용자 데이터를 지우고 그 후에야 새로운 크기가 반영되어 오류가 사라졌습니다.
— Varun

2
RAM이 아닌 내부 저장소를 참조 할 수 있습니까?
— Jonny

1
AVD의 메모리를 늘린 다음 데이터를 삭제했습니다 !! 그리고 지금 작동하고 있습니다.
— Vora

7

이것은 이전 설치가 손상되었음을 의미합니다. 외부에 설치하는 경우 SD 카드를 포맷하고 다시 시도하는 것이 좋습니다.


6

이 오류가 반복적으로 발생했습니다. 오류를 완전히 피하는 가장 간단한 방법은 단순히 SD 카드를 포맷하는 것입니다. 전화 또는 에뮬레이터 내부 도구 사용 내부 안드로이드 도구로 포맷하지 않으면 자동으로 생성 된 SD 카드 또는 자체 sdcard.iso 제작에 실패 하고이 오류가 발생한다는 것을 알았습니다.


1
스택 오버플로에 오신 것을 환영합니다! 게시물 주셔서 감사합니다! 게시물에 서명 / 태그 라인을 사용하지 마십시오. 사용자 상자는 서명으로 계산되며 프로필을 사용하여 자신에 대한 정보를 게시 할 수 있습니다. 서명 / 태그 라인에 대한 FAQ
— Andrew Barber

SDCard에 쓰는 동안 오류가 발생했기 때문에 동일한 솔루션 으로이 문제를 해결했습니다. android : installLocation = "preferExternal"을 유지하려는 Rene의 해결 방법보다 낫습니다.
— LG

확인하십시오. SD의 오류가 나를위한 이유였습니다. 매니페스트에서 "외부 선호"를 제거하여 테스트했습니다.
— djdance

4

나에게 이것은 에뮬레이터의 SD 카드에 공간이 부족했기 때문에 발생했습니다. 나는 꽤 큰 프로젝트로 작업하고 있었고 40MB가 충분하다고 생각했지만 200MB로 변경하고 문제가 사라졌습니다.


4

.apkLink2SD의 두 번째 파티션이있는 노트 8의 Cyanogenmod 12.1 (Android 5.1.1)에서 다양한 오류가 발생 했습니다. adb를 통해 루트로 설치하여 앱을 설치할 수있었습니다.

adb root
adb install -f myapp.apk

3

Android 5.0.1에서이 오류 메시지가 나타납니다. 설정-> 앱-> 기본 설치 위치를 통해 기본 설치 위치를 "이동식 SD 카드"로 변경했습니다.

옵션을 "시스템 결정"으로 다시 변경하고 오류 메시지가 사라졌습니다.


1
이것은 Cyanogenmod 12 (Android 5.0.2)를 실행하는 솔루션으로 보입니다. 앱의 매니페스트가 앱을 설치할 수 없음을 지정했지만 앱을 이동식 SD 카드에 강제 로 설치하는 것처럼 보입니다 .
— Sam

1

저에게는 장치 언어였습니다. 응용 프로그램을 테스트하기 위해 언어를 아랍어로 변경했습니다. 그런 다음이 오류가 발생했습니다. 언어를 되 돌리면 속임수가되었습니다.


1

android : installLocation = "auto"작동합니다 .. !!

그렇지 않은 경우 외부 저장 공간 크기를 한 번 확인하십시오. [사용 가능한 메모리> 앱 크기] 저장 공간이 충분하지 않으면이 오류도 발생합니다.


0

에뮬레이터와 비슷한 문제가있었습니다. 에뮬레이터의 CPU 유형을 ARM에서 Intel로 변경했을 때 사라졌습니다.


실제 ARM에서 여전히 많은 CPU를 사용하는 실제 장치에서 작동하도록하는 것이 문제이므로 OP가 문제를 해결하는 데 실제로 도움이되지는 않습니다.
— 제임스 그린


0

나를 위해 여러 응용 프로그램을 제거하면 문제가 해결되었습니다. 로컬 저장소에 충분한 메모리가 있으면 APK 배포가 성공적으로 완료되었습니다. 그러나 일반적으로 가젯을 다시 시작하면 설치가 완료됩니다. 또한 Clean Master와 같은 일부 프로그램이 도움이 될 수 있습니다. Clean Master로 쓸모없는 프로세스를 지우고 프로그램을 닫고 충분한 메모리를 확보하기 만하면됩니다.


0

장치를 다시 시작하면 문제가 해결되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.