我手上有一个原生的Android游戏,由于通常的原因,我必须使用APK扩展文件。该项目的目标是API级别21,仅为64位。
下载APK扩展程序。
挂载不起作用:对于未加密的obb,我得到错误状态20(AOBB_STATE_ERROR_INTERNAL
)。对于加密的,我得到21(AOBB_STATE_ERROR_COULD_NOT_MOUNT
)。
使用jobb
工具创建APK扩展程序。
versionCode与我的AndroidManifest.xml中的版本匹配。
密钥(使用时)是正确的。
obb文件显然存在,我通过
的方式获取obb挂载路径String packageName = getPackageName(); // we're in the activity
PackageManager pm = getPackageManager();
return Environment.getExternalStorageDirectory().getAbsolutePath() +
EXP_PATH + packageName + "/main." +
pm.getPackageInfo(packageName, 0).versionCode + "." + packageName +
".obb";`.
我得到的结果与NDK实现和Java实现相同。
我理解this was broken for years,但已修复。是真的吗?我做错了什么?
答案 0 :(得分:1)
经过几个小时的挖掘,几乎放弃了所有的希望,我找到了成功。这太荒谬了。但它确实有效。
确保您向storageManager.mountObb()
(或AStorageManager_mountObb()
)投放的路径已删除任何前导斜杠。即。
if (obbPath != null && obbPath.startsWith('/'))
{
obbPath = obbPath.substring(1);
}
您从Environment.getExternalStorageDirectory()
获得的那个会有一个。
希望这有助于节省时间。