我手上有一个很大程度上是本地的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/