在哪里放置OBB文件来testing我的Nexus 4上的Android扩展包文件(OBB)?

我正在尝试按照以下指南testing扩展包文件(OBB)在Android中: http : //developer.android.com/google/play/expansion-files.html

我需要在我的Nexus 4上testing我的应用程序。

我使用jobb和adb生成了我的.obb文件 – 将它推送到设备的这个位置:

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

当应用程序运行它没有find该文件。

方法:

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

为我的文件返回false。

我debugging,发现它正在寻找文件在:

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

具体来说,这是由

 Helpers.generateSaveFileName(c, fileName) 

由Environment.getExternalStorageDirectory()返回的/ storage / emulated / 0不存在用adb shell浏览设备。

但它在运行时,在应用程序内部,我也检查了它包含的内容:它包含了我在/ mnt / shell / emulated / 0中find的几乎相同的东西,它包含Android / obb dir,它是空的。

如何findpath/mnt/shell/emulated/0/Android/obb/my.package/main.1.my.package.obb我放置我的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 

在里面,我已经find了Android / obb目录,为空。

所以问题是:我应该在什么地方把它的obb文件放在运行时的正确位置?

我在那里做了所有的事情:

  • 在Market上创build了一个应用程序草案来获取公钥

  • 生成一个20字节的随机数组(盐)

  • 集成play_licensing / library和play_apk_expansion / download_library

  • 写我的服务/接收器

  • 做了使用帮手等检查。就像文件说。

我想一切正常,但我不能只在Play商店发布! 我需要在本地进行testing,而且在开发的这个初始阶段,我需要经常更改obb文件。

我无法在模拟器上testing,因为我使用3D和设备相机。

Solutions Collecting From Web of "在哪里放置OBB文件来testing我的Nexus 4上的Android扩展包文件(OBB)?"

由于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 

path。

我认为Android文档应该解释这一点。

(我回答我自己的问题,因为我发现如何解决它,而写它。)

对我来说正确的位置是:mnt / sdcard / Android / obb / nameofyourpackage /

不是“/ mnt / shell”