我正在尝试更新我们基于 ARToolkit5 的 Unity Android 应用程序,该应用程序已在 Google Play 商店中存在多年。ARToolkit5 不再受支持,但我们仍然依赖它大约 4 年前构建的库。我的Unity版本是2020.1.11f1。
我需要将应用程序升级到 Google App Bundle 并添加 64 位支持。因此,据我了解,第一步是从 Mono 更改为 IL2CPP 作为脚本后端。32 位 Android ARMv7 应用程序在 Mono 中构建并运行良好,但当我实际上只进行一项更改(即在项目设置下切换为 IL2CPP 作为脚本后端)时,构建失败。我什至还没有尝试添加 ARM64 选项。
使用 IL2CPP 时,构建失败并BuilderFailedException显示数百个Undefined References...
Exception: /Applications/2020.1.11f1/Unity.app/Contents/il2cpp/build/deploy/net471/il2cpp.exe did not run properly!
Failed running "/Applications/2020.1.11f1/Unity.app/Contents/il2cpp/build/deploy/net471/il2cpp.exe" --convert-to-cpp --emit-null-checks --enable-array-bounds-check --dotnetprofile="unityaot" --compile-cpp --libil2cpp-static --platform="Android" --architecture="ARMv7" --configuration="Release" --outputpath="<redacted>/Temp/StagingArea/assets/bin/Data/Native/armeabi-v7a/libil2cpp.so" --cachedirectory="<redacted>/Assets/../Library/il2cpp_android_armeabi-v7a/il2cpp_cache" --additional-include-directories="/Applications/2020.1.11f1/PlaybackEngines/AndroidPlayer/Tools/bdwgc/include" --additional-include-directories="/Applications/2020.1.11f1/PlaybackEngines/AndroidPlayer/Tools/libil2cpp/include" --baselib-directory="/Applications/2020.1.11f1/PlaybackEngines/AndroidPlayer/Variations/il2cpp/Release/StaticLibs/armeabi-v7a" --avoid-dynamic-library-copy --tool-chain-path="/Applications/2020.1.11f1/PlaybackEngines/AndroidPlayer/NDK" --profiler-report --map-file-parser="/Applications/2020.1.11f1/Unity.app/Contents/Tools/MapFileParser/MapFileParser" --directory="<redacted>/Temp/StagingArea/assets/bin/Data/Managed" --generatedcppdir="<redacted>/Temp/StagingArea/Il2Cpp/il2cppOutput"
stdout:
Running il2cpp.exe in workstation GC mode.
Building libil2cpp.so with …Run Code Online (Sandbox Code Playgroud)