final StorageManager storageManager = (StorageManager) getSystemService(STORAGE_SERVICE); String obbPath = Environment.getExternalStorageDirectory() + "/AndroID/obb"; final String obbfilePath = obbPath + "/com.example/main.1.com.example.obb"; storageManager.mountObb(obbfilePath,"SecretKey",new OnObbStatechangelistener() { @OverrIDe public voID onObbStateChange(String path,int state) { super.onObbStateChange(path,state); if (state == OnObbStatechangelistener.MOUNTED) { onObbMounted(); } else { Log.d("##","Path: " + path + "; state: " + state); } } });
但是在运行时我得到状态21:ERROR_Could_NOT_MOUNT:
Path: /storage/sdcard0/AndroID/obb/com.example/main.1.com.example.obb; state: 21
我添加了这个:
file f = new file(obbfilePath); if (!f.exists()) { Log.e("OBB","file NOT FOUND!!!"); }
而logcat说该文件存在.我不知道,为什么我能得到这个状态21?
解决方法 我有同样的问题,我想多次错误21由obb上的linux文件权限引起,问题是AndroID无法访问它所以StorageManager启动错误21.当你创建.obb文件时,将权限和用户组更改为文件,如:$chmod 664 <obb-filename>.obb $chown user:group <obb-filename>.obb
然后再试一次,为我工作.
总结以上是内存溢出为你收集整理的android – 如何挂载加密的APK扩展文件?全部内容,希望文章能够帮你解决android – 如何挂载加密的APK扩展文件?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)