Unity 2022.3.4f1构建ARM64时IL2CPP编译ARM32卡住报错
问题现象
构建ARM64应用时,ARM64阶段完成后卡在「compiling cpp for il2cpp (arm32)」步骤,最终抛出以下错误:
TaskCanceledException: A task was canceled.
UnityEditor.Modules.BeeBuildPostprocessor.PostProcess(UnityEditor.Modules.BuildPostProcessArgs args) (at :0)
UnityEditor.Modules.DefaultBuildPostprocessor.PostProcess(UnityEditor.Modules.BuildPostProcessArgs args, UnityEditor.BuildProperties& outProperties) (at :0)
UnityEditor.Android.AndroidBuildPostprocessor.PostProcess(UnityEditor.Modules.BuildPostProcessArgs args, UnityEditor.BuildProperties& outProperties) (at :0)
UnityEditor.PostprocessBuildPlayer.Postprocess(UnityEditor.BuildTargetGroup targetGroup, UnityEditor.BuildTarget target, System.Int32 subtarget, System.String installPath, System.String companyName, System.String productName, System.Int32 width, System.Int32 height, UnityEditor.BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.Build.Reporting.BuildReport report) (at :0)
UnityEditor.BuildPlayerWindow:BuildPlayerAndRun()
解决方法
- 仅保留ARM64架构
打开Player Settings > Android > Other Settings > Configuration,取消勾选ARMv7(32-bit),只保留ARM64,避免Unity额外编译ARM32架构。 - 清理构建缓存
点击顶部菜单栏File > Build Settings > Clean Build,或手动删除项目根目录下的Library、Temp、obj文件夹及Android输出目录,清除损坏缓存。 - 匹配JDK/NDK版本
Unity 2022.3.x推荐使用JDK 11、NDK 25.x。通过Player Settings > Android > SDK Manager切换到对应版本,重启Unity后重试构建。 - 延长构建超时时间
编辑Unity安装目录下的Bee/settings.json文件(Windows路径:Editor/Data/PlaybackEngines/AndroidPlayer/Tools/Bee/settings.json;Mac路径:/Applications/Unity/Hub/Editor/2022.3.4f1/PlaybackEngines/AndroidPlayer/Tools/Bee/settings.json),增大taskTimeoutSeconds数值(例如从300改为1800),防止编译超时被取消。 - 关闭增量构建
在Build Settings窗口取消勾选Incremental Build,改用全量构建避免缓存冲突。 - 排查平台依赖插件
检查Plugins/Android目录下的.so文件,确保所有第三方插件都提供ARM64版本,移除仅支持ARM32的插件。
内容的提问来源于stack exchange,提问作者Moshe Dayan

