unc*_*Lem 5 android apk-expansion-files
我尝试以这种方式挂载扩展文件:
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);
}
}
});
Run Code Online (Sandbox Code Playgroud)
但是在运行时我得到状态21:ERROR_COULD_NOT_MOUNT:
Path: /storage/sdcard0/Android/obb/com.example/main.1.com.example.obb; state: 21
Run Code Online (Sandbox Code Playgroud)
我添加了这个:
File f = new File(obbFilePath);
if (!f.exists()) {
Log.e("OBB", "FILE NOT FOUND!!!");
}
Run Code Online (Sandbox Code Playgroud)
而logcat说该文件存在.我不知道,为什么我能得到这个状态21?
小智 3
我遇到了同样的问题,我发现很多时候Error 21
都是由 Linux 文件权限对 obb 造成的,问题是 Android 无法访问它,所以StorageManager
启动了Error 21
. 创建 .obb 文件时,更改该文件的权限和用户组,如下所示:
$chmod 664 <obb-filename>.obb
$chown user:group <obb-filename>.obb
Run Code Online (Sandbox Code Playgroud)
然后再试一次,对我有用。
归档时间: |
|
查看次数: |
3174 次 |
最近记录: |