이것이 의미하는 것은 : 실패 [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.