我手上有一个很大程度上是本地的android游戏,出于通常的原因,它必须使用apk扩展文件。该项目以API级别21为目标,仅64位。
下载apk扩展工作。
挂载不起作用:对于未加密的obb,我得到一个错误状态20(AOBB_STATE_ERROR_INTERNAL)。对于加密的,我得到21(AOBB_STATE_ERROR_COULD_NOT_MOUNT)。
apk扩展是使用jobb工具创建的。
版本代码与我的androidmanifest.xml中的版本匹配。
钥匙(使用时)正确。
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实现都是相同的。
我明白,但已经修好了。真的吗?我做错什么了?

最佳答案

经过数小时的挖掘,几乎放弃了所有的希望,我找到了成功。这太荒谬了。但它起作用了。
确保您输入到storageManager.mountObb()(或AStorageManager_mountObb())的路径中删除了任何前导斜杠。即。

if (obbPath != null && obbPath.startsWith('/'))
{
    obbPath = obbPath.substring(1);
}

Environment.getExternalStorageDirectory()获得的将有一个。
希望这有助于节省时间。

关于android - 仍然无法挂载APK扩展文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46277291/

10-08 23:48