首页 > 解决方案 > 如何在 Unity Split Binary Build 中获得 Application.dataPath 等结果

问题描述

我正在使用 Unity 5.6。

到目前为止,Android 使用一种方法来检查 APK 内的 classes.dex 文件以防止应用被篡改

对于典型的构建,导入 classes.dex 文件没有问题。

但是,使用“Split Binary Build”选项来使用 .obb 文件,我无法正确导入 classes.dex 文件。

我曾经通过以下方式导入classes.dex文件

string urlScheme = @"jar:file://";
string apkPath = Application.dataPath;
string separator = @"!/";
string entry = @"classes.dex";
string url = urlScheme + apkPath + separator + entry;

如果在 Unity 中使用 Split Binay 选项,Application.dataPath 的路径将是 'android / data / obb /.../ myobb.obb'

有没有办法使用 Split Binary Build 选项获得与现有 Application.dataPath 相同的结果?

标签: androidunity3dbuild

解决方案


我解决了。在 Unity 内无法解决。

如果在 Unity 中使用从 Java 导入的值,则可以得到相同的结果。

        PackageManager m = getPackageManager();
    String s = getPackageName();
    PackageInfo p = m.getPackageInfo(s, 0);
    s = p.applicationInfo.sourceDir;

参考:获取应用程序目录


推荐阅读