web-dev-qa-db-ja.com

Nexus4でテストするOBBファイルをどこに配置しますかAndroid拡張パックファイル(OBB)?

私はここのガイドに従ってAndroidで拡張パックファイル(OBB)をテストしようとしています: http://developer.Android.com/google/play/expansion-files .html

Nexus4でアプリをテストする必要がある段階にあります。

Jobbを使用して.obbファイルを生成し、adb-この場所のデバイスにプッシュしました。

/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バイト(塩)のランダム配列を生成しました

  • 統合されたplay_licensing/libraryとplay_apk_expansion/download_library

  • 私のサービス/レシーバーを書いた

  • ドキュメントに記載されているとおり、ヘルパーなどを使用してチェックを行いました。

すべてがうまくいくと思いますが、Playストアでまだリリースできません!ローカルでテストする必要があり、開発のこの初期段階でobbファイルをかなり頻繁に変更する必要があります。

3Dとデバイスカメラを使用しているため、エミュレータでテストできません。

12
Daniele Segato

Android 4.2以降、マルチユーザーサポートが追加されました。

これをサポートするには、Android実際のファイルシステムの周りのサンドボックスレイヤーとして機能するユーザーごとにエミュレートされたディスクをマウントします。これにより、Androidユーザー間でのファイル共有を適切に処理できます。いずれかの個人ファイル。

短編小説:

/storage/emulated

エミュレートされたファイルシステムです。

adb Shellからそのディレクトリに入ると、

/storage/emulated/obb

ディレクトリ。何らかの理由で表示されない場合があります(これが発生した場合の対処方法については、以下を参照してください)

/ Android/obbにはありませんが、アプリパッケージ/ obbファイルを配置するのに適したディレクトリです。

そのディレクトリが表示されない場合調べてみてください:

/mnt/Shell/emulated/obb

そこにファイルを置くことができるはずです。

実行時に正しくピックアップされ、で終了します。

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

道。

Androidドキュメントでこれを説明する必要があると思います。

(書きながら解決する方法を見つけたので、自分の質問に答えます。)

21
Daniele Segato

私にとって正しい場所は次のとおりです:mnt/sdcard/Android/obb/nameofyourpackage /

「/ mnt/Shell」ではありません

2
cal