还是无法安装APK扩展文件?

时间:2017-09-18 10:41:18

标签: android android-ndk apk-expansion-files

我手上有一个原生的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,但已修复。是真的吗?我做错了什么?

1 个答案:

答案 0 :(得分:1)

经过几个小时的挖掘,几乎放弃了所有的希望,我找到了成功。这太荒谬了。但它确实有效。

确保您向storageManager.mountObb()(或AStorageManager_mountObb()投放的路径已删除任何前导斜杠。即。

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

您从Environment.getExternalStorageDirectory() 获得的那个会有一个。

希望这有助于节省时间。