앱을 배포하려고 할 때 가끔이 오류가 발생합니다.
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를 삭제할 수있는 유일한 방법이기 때문에 하나의 솔루션 인 것처럼 보입니다).
답변
장치에서이 파일을 제거하십시오
/mnt/secure/asec/smdl2tmp1.asec
Mathias Conradt (OP)의 편집 / 업데이트 :
루트 액세스 권한이 없으면 sdcard를 마운트하고 pc를 통해 제거해야합니다.
/.android_secure/smdl2tmp1.asec
답변
설치 위치를 다음에서 변경하십시오.
android:installLocation="preferExternal"
으로
android:installLocation="auto"
프로젝트의 AndroidManifest.xml에
답변
에뮬레이터를 사용하는 경우 에뮬레이터를 편집하고 메모리를 추가하십시오. 나는 이것과 같은 문제가 있었고 AVD의 메모리를 200MB에서 1000MB로 편집하기 만하면 문제가 사라지는 것처럼 보입니다 … 행운.
답변
이것은 이전 설치가 손상되었음을 의미합니다. 외부에 설치하는 경우 SD 카드를 포맷하고 다시 시도하는 것이 좋습니다.
답변
이 오류가 반복적으로 발생했습니다. 오류를 완전히 피하는 가장 간단한 방법은 단순히 SD 카드를 포맷하는 것입니다. 전화 또는 에뮬레이터 내부 도구 사용 내부 안드로이드 도구로 포맷하지 않으면 자동으로 생성 된 SD 카드 또는 자체 sdcard.iso 제작에 실패 하고이 오류가 발생한다는 것을 알았습니다.
답변
나에게 이것은 에뮬레이터의 SD 카드에 공간이 부족했기 때문에 발생했습니다. 나는 꽤 큰 프로젝트로 작업하고 있었고 40MB가 충분하다고 생각했지만 200MB로 변경하고 문제가 사라졌습니다.
답변
.apk
Link2SD의 두 번째 파티션이있는 노트 8의 Cyanogenmod 12.1 (Android 5.1.1)에서 다양한 오류가 발생 했습니다. adb를 통해 루트로 설치하여 앱을 설치할 수있었습니다.
adb root
adb install -f myapp.apk