问题
Unity 项目将版本从 2018 升级到 2020 版本之后,导出集成到 Android 项目时,运行时报错找不到 libmain.so。
java.lang.UnsatisfiedLinkError: dlopen failed: library "/data/app/xxx/lib/arm/libmain.so" not found
原因
最终找到了根本原因:
Unity 2020 版导出的工程中 UnityPlayer 加载so 库用的是绝对路径方式,其源码如下:
String var6 = loadNative(getUnityNativeLibraryPath(var1));
private static String getUnityNativeLibraryPath(Context var0)

升级Unity至2020版本后,导出的Android项目在运行时出现找不到libmain.so的问题。原因是UnityPlayer使用绝对路径加载SO库,但AGP 3.6+不再复制SO到nativeLibraryDir。为解决此问题,需在项目build.gradle中关闭AGP的原生库压缩优化选项。
4422

被折叠的 条评论
为什么被折叠?



