仍然无法挂载 APK 扩展文件?

Still failing to mount APK expansion file?

我手上有一个主要是原生的 Android 游戏,出于通常的原因,它必须使用 APK 扩展文件。该项目面向 API 级别 21,并且仅为 64 位。

下载 APK 扩展有效。

无法安装:对于未加密的 obb,我收到错误状态 20 (AOBB_STATE_ERROR_INTERNAL)。对于加密的,我得到一个 21 (AOBB_STATE_ERROR_COULD_NOT_MOUNT)。

APK 扩展是使用 jobb 工具创建的。

版本代码与我的 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,但它已被修复。真的吗?我做错了什么?

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

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

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

你从 Environment.getExternalStorageDirectory() 得到的那个 会有一个。

希望这有助于节省时间。