ここのガイドに従って、Android で拡張パック ファイル (OBB) をテストしようとしています: http://developer.android.com/google/play/expansion-files.html
Nexus 4 でアプリをテストする必要がある段階です。
jobb で .obb ファイルを生成し、デバイスの次の場所に adb-push しました。
/mnt/shell/emulated/0/Android/obb/my.package/main.1.my.package.obb
アプリを実行すると、ファイルが見つかりません。
方法:
Helpers.doesFileExist(context, fileName, xf.mFileSize, false)
私のファイルに対して false を返します。
デバッグしたところ、次のファイルを探していることがわかりました。
/storage/emulated/0/Android/obb/my.package/main.1.my.package.obb
具体的には、これは次によって返されるパスです。
Helpers.generateSaveFileName(c, fileName)
Environment.getExternalStorageDirectory() によって返された /storage/emulated/0 は、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
その中には、すでに空の Android/obb ディレクトリが見つかりました。
問題は、実行時にobbファイルを正しい位置に配置するには、obbファイルをどこに配置する必要があるかということです。
私はそこで言われたすべてをしました:
公開鍵を取得するためにマーケットでドラフト アプリケーションを作成しました
20 バイトのランダムな配列を生成しました (salt)
統合された play_licensing/library および play_apk_expansion/download_library
私のサービス/受信者を書きました
ドキュメントが言うように、ヘルパーなどを使用してチェックを行いました。
すべてうまくいくと思いますが、まだ Play ストアでリリースすることはできません! ローカルでテストする必要があり、この開発の初期段階ではかなり頻繁に obb ファイルを変更する必要があります。
3D とデバイス カメラを使用しているため、エミュレーターでテストできません。