Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
扩展文件-无法从Android 4.2上的/sdcard/Android/obb/加载.obb_Android_File_Android 4.2 Jelly Bean_Apk Expansion Files - Fatal编程技术网

扩展文件-无法从Android 4.2上的/sdcard/Android/obb/加载.obb

扩展文件-无法从Android 4.2上的/sdcard/Android/obb/加载.obb,android,file,android-4.2-jelly-bean,apk-expansion-files,Android,File,Android 4.2 Jelly Bean,Apk Expansion Files,我正在为扩展文件开发obb集成。我通过复制设备4.1的SD卡上的.obb文件使它在本地工作,但在我的4.2设备上它不再工作了 1对4.1平板电脑:运行良好。我在平板电脑上使用adb命令推送扩展包文件,然后我能够找到并读取该文件: adb push main.1.mypackage.obb /sdcard/Android/obb/mypackage/ shell@android:/sdcard/Android/obb/mypackage/ $ ls -al -rw-rw-r-- root

我正在为扩展文件开发obb集成。我通过复制设备4.1的SD卡上的.obb文件使它在本地工作,但在我的4.2设备上它不再工作了

1对4.1平板电脑:运行良好。我在平板电脑上使用adb命令推送扩展包文件,然后我能够找到并读取该文件:

adb push main.1.mypackage.obb /sdcard/Android/obb/mypackage/
shell@android:/sdcard/Android/obb/mypackage/ $ ls -al
-rw-rw-r-- root     sdcard_rw 20314171 2013-08-05 18:01 main.1.mypackage.obb
2 On 4.2:与上面的过程相同,文件不可见,主活动上的exists和canRead方法返回false

adb push main.1.mypackage.obb /sdcard/Android/obb/mypackage/
shell@android:/sdcard/Android/obb/mypackage/ $ ls -al
-rw-rw-r-- root     sdcard_rw 20314171 2013-08-05 18:54 main.1.mypackage.obb
解决方案:从那里开始,我使用Android File Transfer应用程序进行了调查,发现工具中的obb文件夹是空的……因此,我将数据推送到的文件夹不同

我用Android File Transfer应用程序上传了.obb,然后它就开始工作了……但是如果是那样的话,我不知道文件存储在哪里,我想SD卡上没有

伙计们,我需要在4.2上修改什么来访问我的.obb文件?提前谢谢

额外信息:

a我使用file.exists+canRead=+file.canRead和Environment.getExternalStorageDirectory进行了基本测试,以检查文件是否存在:

File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath()
            + "/Android/obb/packagename/main.1.packagename.obb");
b程序是脚本化的,因此问题不是来自手动错误和三重检查

编辑

c总结如下:

使用adb push on 4.2,它可以处理正常数据:如果我将包含图像的文件夹放在/sdcard/myfolder/中,它可以工作,但不在/sdcard/android/下

Android文件传输在根目录下显示Android/obb文件夹,在这种情况下,代码中可以看到.obb文件,但:

我无法确认它是否在“Android文件传输应用程序”的/sdcard上,让我不安的是,在adb shell ls/sdcard/Android/obb上显示文件夹为空… 我不能在4.1和4.2中使用相同的脚本,验证生产过程并在开发中使用它,以节省大量的时间和构建和部署时间… 内部使用的溶液

对于<4.1

adb push main.1.mypackage.obb /sdcard/Android/obb/mypackage/
对于>=4.2

adb push main.1.mypackage.obb /mnt/shell/emulated/obb/mypackage/

据我所知,当您手动将文件推入Android的文件系统时,一切正常。在这种情况下,我认为问题在于adb中的一些错误或一些印刷错误。 无论如何,为了从Google服务器下载APK文件,您必须这样做,并且您不必处理adb或任何其他实用程序,因此我认为您不必关注这个问题

我想SD卡上没有吧


如果它在/sdcard/文件夹中,它就在sdcard上。

据我所知,当您手动将文件推入Android的文件系统时,一切正常。在这种情况下,我认为问题在于adb中的一些错误或一些印刷错误。 无论如何,为了从Google服务器下载APK文件,您必须这样做,并且您不必处理adb或任何其他实用程序,因此我认为您不必关注这个问题

我想SD卡上没有吧


如果它在/sdcard/folder中-它在sdcard上。

Android在4.2中为obb folder添加了某种安全防护,用于破解游戏等。谷歌的安卓系统在4.2版本中为破解游戏和其他东西的obb Folder设置了某种安全防护,可以查看更多信息。在google的

中查看更多信息,使用monitor Android Debug monitor将扩展文件放在设备上进行测试

我对Nexus 7的体验不是使用命令行adb vs monitor Android Debug Monitorgui:

1 adb push main.1.com.mypackage.obb/sdcard/Android/obb/com.mypackage/main.1.com.mypackage.obb

看起来很成功。但是,应用程序找不到扩展文件,设备上的文件资源管理器无法显示该文件。注意:设备没有根目录,我无法运行adb根目录

2使用监视器gui-从命令行开始,使用:../sdk/tools/monitor
使用MonitorGUI显示/sdcard位置实际上指向几个不同的文件链接。为了让应用程序看到扩展文件,我必须将扩展文件放在正确的链接文件位置-在我的例子中,这是/mnt/shell/emulated/obb/com.mypackage-adb shell仍然没有显示该文件,但是,设备上的应用程序可能会访问该文件。

使用monitor Android Debug monitor将扩展文件放在设备上进行测试

我对Nexus 7的体验不是使用命令行adb vs monitor Android Debug Monitorgui:

1 adb push main.1.com.mypackage.obb/sdcard/Android/obb/com.mypackage/main.1.com.mypackage.obb

看起来很成功。但是,应用程序找不到扩展文件,设备上的文件资源管理器无法显示该文件。注意:设备没有根目录,我无法运行adb根目录

2使用监视器gui-从命令行开始,使用:../sdk/tools/monitor 使用MonitorGUI显示/sdcard位置实际上指向几个不同的文件链接。为了让应用程序看到扩展文件,我必须将扩展文件放到
正确的链接文件位置-在我的例子中是/mnt/shell/emulated/obb/com.mypackage-adb shell仍然没有显示该文件,但是设备上的应用程序可以访问该文件。

我将备份的obb文件从许多游戏中推送回来,更喜欢通过adb将其推送回去,并且我始终必须使用完整的文件夹结构行,因此请尝试使用

/mnt/sdcard/Android/obb/AppDataFolderNameHere
所以对你来说,代码是

adb push main.1.mypackage.obb /mnt/sdcard/Android/obb/mypackage/
shell@android://mnt/sdcard/Android/obb//mypackage/ $ ls -al
-rw-rw-r-- root     sdcard_rw 20314171 2013-08-05 18:01 main.1.mypackage.obb

许多Linux设备只是在mnt文件夹事件中有SD卡,尽管它是一个单独的存储设备。

我从许多游戏中推送备份的obb文件,并更喜欢通过adb将其推送回去,并且我始终必须使用完整的文件夹结构行,因此请尝试使用

/mnt/sdcard/Android/obb/AppDataFolderNameHere
所以对你来说,代码是

adb push main.1.mypackage.obb /mnt/sdcard/Android/obb/mypackage/
shell@android://mnt/sdcard/Android/obb//mypackage/ $ ls -al
-rw-rw-r-- root     sdcard_rw 20314171 2013-08-05 18:01 main.1.mypackage.obb

许多Linux设备只是在mnt文件夹事件中有SD卡,尽管它是一个单独的存储设备。

找到了关于该主题的其他帖子,但没有成功:以及找到了关于该主题的其他帖子,但没有成功:目前,在安卓4.2上,我使用安卓文件传输来验证功能,而不是adb推送,因为adb推送不起作用。我有一个解决办法,所以我将重点放在下一步…@Gros尝试使用SDK中的Android监视器将.obb推送到/sdcard/文件夹中。顺便问一下,你的4.2设备有SD卡吗=现在,在安卓4.2上,我使用安卓文件传输来验证功能,而不是无法工作的adb推送。我有一个解决办法,所以我将重点放在下一步…@Gros尝试使用SDK中的Android监视器将.obb推送到/sdcard/文件夹中。顺便问一下,你的4.2设备有SD卡吗=我猜这是一个安全警卫,但我没有找到有关它的文件。您提供了我所遵循的文档的参考,但我没有看到关于此的更多信息,您能引用关于保护的部分吗?我猜这是一个安全防护,但我没有找到关于它的文档。您提供了对我遵循的文档的参考,但我没有看到关于这方面的更多信息,您能引用关于保护的哪一部分吗?