2013-10-18 5 views
10

나는 여기에 가이드 다음 안드로이드에서 확장 팩 파일 (OBB)를 테스트하기 위해 노력하고있어 : 내가 내 넥서스에 내 응용 프로그램을 테스트하는 데 필요한 단계에있어 http://developer.android.com/google/play/expansion-files.htmlNexus 4에서 OBB 파일을 테스트하여 Android 확장 팩 파일 (OBB)을 테스트하려면 어떻게해야하나요?

4.

내가 jobb과 내 .obb 파일 생성이 위치에 장치를 ADB을-밀어 :

/mnt/shell/emulated/0/Android/obb/my.package/main.1.my.package.obb 

응용 프로그램이 파일을 찾을 수 없습니다 실행합니다.

방법 : 내 파일에 대한 잘못된

Helpers.doesFileExist(context, fileName, xf.mFileSize, false) 

돌아갑니다. 환경에 의해 반환,

Helpers.generateSaveFileName(c, fileName) 

해당/저장// 0 에뮬레이션 :

나는 디버깅하고있는 파일을 찾고 발견 :

/storage/emulated/0/Android/obb/my.package/main.1.my.package.obb 

특히이에 의해 반환되는 경로는 .getExternalStorageDirectory()가 adb 셸을 사용하여 장치를 탐색하지 않습니다.

런타임에 애플리케이션 내부에서 내용물을 확인했는데/mnt/shell/emulated/0에서 찾은 것과 거의 동일한 것들이 포함되어 있습니다. Android/obb 디렉토리가 비어 있습니다. .

나는 내 OBB 파일 위치 경로 /mnt/shell/emulated/0/Android/obb/my.package/main.1.my.package.obb 발견 방법 :

$ adb shell 
$ ls -ld sdcard 
lrwxrwxrwx root  root    2013-10-16 17:34 sdcard -> /storage/emulated/legacy 
$ ls -ld /storage/emulated/legacy 
lrwxrwxrwx root  root    2013-10-16 17:34 legacy -> /mnt/shell/emulated/0 

을 그리고 안쪽에 안드로이드/obb 디렉토리가 이미 있음을 알았습니다.

문제는 다음과 같습니다. 런타임시 올바른 위치에 obb 파일을 두어야합니까?

나는 모든 것을 거기에 말했다 않았다
  • 공개 키

  • 20 바이트 (소금)

  • 통합의 임의의 배열을 생성 얻을 수있는 시장 초안 응용 프로그램을 만들었 play_licensing/library 및 play_apk_expansion/download_library

  • 쓴/내 수신자

  • 도우미 등을 사용하여 확인했습니다. 문서의 내용과 정확히 같습니다.

나는 모든 것이 작동한다고 생각하지만 아직 Play 스토어에서 출시 할 수는 없습니다. 나는 로컬에서 테스트해야하며 개발 초기 단계에서 obb 파일을 꽤 자주 바꿀 필요가 있습니다.

3D 및 장치 카메라를 사용하기 때문에 에뮬레이터에서 테스트 할 수 없습니다.

답변

20

Android 4.2 멀티 사용자 지원이 추가되었습니다.

실제 파일 시스템 주위에 샌드 박스 레이어 역할을하는 사용자마다 에뮬레이트 된 디스크를 마운트하려면 안드로이드가 개인 파일이나 사용자간에 파일을 적절히 처리하도록합니다.

긴 이야기를 짧게 :

/storage/emulated 

는 에뮬레이트 된 파일 시스템이다.

당신이 ADB 쉘에서 디렉토리를 입력하면 당신이

/storage/emulated/obb 

디렉토리를 볼 수 있습니다. 때때로 어떤 이유로 든 나타나지 않습니다. (이 경우 일어날 일에 대해서는 아래를 참조하십시오.)

/Android/obb에는 없지만 앱 패키지/obb 파일을 둘 수있는 올바른 디렉토리입니다! 해당 디렉토리가에서 찾고 시도가 표시되지 않는 경우

:

/mnt/shell/emulated/obb 

당신은 거기에 파일을 넣을 수 있어야합니다.

이 제대로

/storage/emulated/0/Android/obb/my.package/main.1.my.package.obb 

경로에서 끝나는 런타임에 포착됩니다.

Android 설명서에서 설명해야한다고 생각합니다.

(내가 쓰는 동안 그것을 해결하는 방법을 찾을 수 있기 때문에 난 내 자신의 질문에 대답.) 나를 위해

+0

이 트릭을 수행하면 안됩니까? https://developer.android.com/reference/android/os/storage/StorageManager.html#getMountedObbPath%28java.lang.String%29 –

+2

링크 된 내용은 코드에서 사용할 올바른 API이지만 절대적으로 중요합니다. 기기에 obb 파일을 물리적으로 배치해야하는 위치를 파악하여 Google Play에서 relbased하지 않고도 앱을 테스트 할 수 있습니다. Obb 파일에 대해 개발하는 동안 PC에서 Obb 파일을 생성 한 다음이를 테스트 할 장치 파일 시스템의 어딘가에 배치해야합니다. 이것은 OBB 파일을 업로드 할 파일 시스템의 올바른 경로를 찾는 것입니다. –

1

올바른 위치는 다음과 같습니다 MNT/SDCARD/안드로이드/OBB/nameofyourpackage/

NOT "/mnt/shell "

+0

은 OS 버전에 따라 다릅니다. OS 버전은 무엇입니까? –

+0

맞습니다. Android Emulator 4.2에만 적용됩니다. – cal