2013-06-11 3 views
2

AndroidManifest.xml 파일에 preferExternal을 지정하면 가상 장치 (API 10 및 17)에 응용 프로그램을 설치할 수 없습니다.SD 카드에 apk를 설치할 수 없습니다.

콘솔 출력 :

[2013-06-11 12:01:51 - MyApp] Android Launch! 
[2013-06-11 12:01:51 - MyApp] adb is running normally. 
[2013-06-11 12:01:51 - MyApp] Performing com.mydomain.MyApp.activities.ChannelActivity activity launch 
[2013-06-11 12:01:51 - MyApp] Automatic Target Mode: Preferred AVD 'NexusS_API17' is available on emulator 'emulator-5554' 
[2013-06-11 12:01:51 - MyApp] Uploading MyApp.apk onto device 'emulator-5554' 
[2013-06-11 12:01:55 - MyApp] Installing MyApp.apk... 
[2013-06-11 12:01:59 - MyApp] Installation error: INSTALL_FAILED_CONTAINER_ERROR 
[2013-06-11 12:01:59 - MyApp] Please check logcat output for more details. 
[2013-06-11 12:01:59 - MyApp] Launch canceled! 

로그 캣 출력 :

06-11 10:01:57.385: W/ActivityManager(302): No content provider found for permission revoke: file:///data/local/tmp/MyApp.apk 
06-11 10:01:57.755: I//system/bin/make_ext4fs(32): Creating filesystem with parameters: 
06-11 10:01:57.755: I//system/bin/make_ext4fs(32):  Size: 2158592 
06-11 10:01:57.755: I//system/bin/make_ext4fs(32):  Block size: 4096 
06-11 10:01:57.755: I//system/bin/make_ext4fs(32):  Blocks per group: 32768 
06-11 10:01:57.755: I//system/bin/make_ext4fs(32):  Inodes per group: 144 
06-11 10:01:57.755: I//system/bin/make_ext4fs(32):  Inode size: 256 
06-11 10:01:57.766: I//system/bin/make_ext4fs(32):  Journal blocks: 0 
06-11 10:01:57.775: I//system/bin/make_ext4fs(32):  Label: 
06-11 10:01:57.775: I//system/bin/make_ext4fs(32):  Blocks: 527 
06-11 10:01:57.775: I//system/bin/make_ext4fs(32):  Block groups: 1 
06-11 10:01:57.785: I//system/bin/make_ext4fs(32):  Reserved block group size: 7 
06-11 10:01:57.795: I//system/bin/make_ext4fs(32): Created filesystem with 11/144 inodes and 23/527 blocks 
06-11 10:01:57.846: I/Vold(32): Filesystem (ext4) formatted OK 
06-11 10:01:57.855: E/Vold(32): ASEC FAT mount failed (No such device) 
06-11 10:01:57.926: E/PackageHelper(1091): Failed to create secure container smdl2tmp1 
06-11 10:01:57.926: E/DefContainer(1091): Failed to create container smdl2tmp1 
06-11 10:01:57.937: W/ActivityManager(302): No content provider found for permission revoke: file:///data/local/tmp/MyApp.apk 

명 과거에 smdl2tmp1와 비슷한 문제가 발생한 것 같습니다,하지만 내 AVD 년대는 smdl2tmp1.asec이없는 파일. 나는 많은 것을 시도했다.

  1. AVD 's를 재생한다.
  2. ADM에서 umount가 마운트 된/mnt/sdcard를 마운트 해제합니다 (장치가 사용 중입니다).
  3. ADT (22)의 새로 설치와 함께 다른 컴퓨터에서 개발 환경을 재 구축

사람이 내가 외부의 sdcard에 설치하는 내 응용 프로그램을 얻을 수있는 방법에 대한 제안 사항이 있습니까? 내부 저장소에 설치할 때 잘 실행됩니다.

+0

난 그냥 "를 사용하여 호스트 GPU를"해제,이 문제를 가졌다는 – Entea

+0

사용 호스트 GPU가 확인되지 않은 나를 :) 도움이 듯,하지만 난 다시 테스트, 확인 시도 , 선택을 취소하고 재검사하십시오. 변경 없음. –

답변

0

지금부터 외부 장치에 응용 프로그램을 설치하려면 Android SDK을 사용하고 <sdk>/tools<sdk>/platform-tools 폴더가 경로에 있는지 확인하십시오. 프로그램을 열고 android-tools 패키지를 다운로드하십시오. 이 오류 메시지가 표시되면

adb shell pm set-install-location 2

:

enter image description here

그런 다음 방화벽이 활성화되지 확인하고 "관리자의 권한"으로 쉘이 명령을 실행, 장치, enable USB debug mode를 연결

여러 기기 (실제 휴대 전화 및 기타 가상 기기, AVD라고도 함)가 있기 때문에 그 점이 다릅니다. 이 명령을 사용하여 자신의 휴대 전화가 무엇인지 확인할 수 있습니다.

adb devices

나는 이런 식으로 뭔가를 보여줄 것이다 :

는 두 개의 능동 소자했다 나의 경우 enter image description here

: 그 이름이 나타내는 하나가 에뮬레이터 (AVD)이다,로, 다른 하나는 내 전화 "99000200835402". 제 경우에 동일한 ID를 가진 두 개의 장치가있는 경우 TaskManager를 사용하여 "adb.exe"프로세스를 종료하고 전화를 다시 연결 한 다음 다시 확인하십시오. 접두사가없는 "id"가있는 장치 만 사용해야합니다.

ADB -s "99000200835402"쉘 오후 세트 설치-위치 2

하지만 그 대신 99000200835402의 전화 ID로, 그것은 다음과 같아야합니다 :

enter image description here 그래서 다음 명령을 실행 자세한 내용은 방문 다음 링크를 들어

:

관련 문제