仍然无法挂载 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()
得到的那个 会有一个。
希望这有助于节省时间。
我手上有一个主要是原生的 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()
得到的那个 会有一个。
希望这有助于节省时间。