UE5.6源码安卓打包报错

"Error: Multiple input files specified on command line: "../Plugins/FX/Niagara/Source/Niagara/Private/NiagaraDataInterfaceVectorField.ispc" and "= 6".[37/39] Compile [aarch64] FloatArrayMath.ispc

问题根源:ISPC 在 Android Arm64 交叉编译阶段出错

UE 5.5 之后 Epic 把 Intel ISPC(Single-Program/Multiple-Data CPU 向量编译器)默认强制打开,而引擎自带的 ISPC 版本目前仍然只针对 x86_64 主机编译器配置。当你用 UE 5.6 为 Android(arm64-v8a) 打包时,UBT 会把每个 *.ispc 文件交给同一个 Windows 主机上的 ispc.exe,并插入一个无效的 aarch64 目标参数。命令行里出现像

... NiagaraDataInterfaceVectorField.ispc --target=aarch64-neon-i32x4 = 6

= 6 被 ISPC 当成第二个输入文件,于是抛出:

Error: Multiple input files specified on command line: "...NiagaraDataInterfaceVectorField.ispc" and "= 6".

导致整个 Android 构建链条被中断

解决方案

  1. 把 ISPC 关掉只会让少数 Niagara/Chaos 的 CPU 路径退回到普通 C++ 实现,对移动设备来说几乎没有性能损失。直接在项目的Target.cs 和Editor.Target.cs加上,这是最快的解决方案。

bCompileISPC = false;

如果还不行的话,将 源码的UEBuildAndroid.cs的Target.bCompileISPC设置成false

UnrealEngine-5.6.0-release\Engine\Source\Programs\UnrealBuildTool\Platform\Android\UEBuildAndroid.cs

  1. 升级 ISPC 工具链
    https://github.com/ispc/ispc/releases 下载与主机平台对应的 ispc-v1.27.x 压缩包。将对应平台的执行文件替换

UnrealEngine-5.6.0-release\Engine\Source\ThirdParty\Intel\ISPC\bin

UnrealEngine-5.6.0-release\Engine\Source\ThirdParty\Intel\ISPCTexComp\ISPCTextureCompressor-14d998c\ISPC

相关推荐
猿小蔡2 小时前
Robolectric如何启动一个Activity
android·单元测试
2501_915918413 小时前
uni-app 跨平台项目的 iOS 上架流程:多工具组合的高效协作方案
android·ios·小程序·https·uni-app·iphone·webview
小墙程序员13 小时前
一文了解 Android 5 到 16 期间跨进程通信(IPC) 的使用
android·android studio
雨白15 小时前
Android 自定义 View 基础:布局流程详解
android
leon_teacher15 小时前
HarmonyOS权限管理应用
android·服务器·前端·javascript·华为·harmonyos
Just_Paranoid17 小时前
【AOSP】Android Dump 开发与调试指南
android·adb·service·dumpsys
独行soc19 小时前
2025年渗透测试面试题总结-38(题目+回答)
android·安全·网络安全·面试·职场和发展·渗透测试·求职
做一位快乐的码农20 小时前
原生安卓#基于Android的爱好者分享论坛的设计与实现/基于Android在线论坛系统app/基于Android的论坛系统的设计与实现的设计与实现
android
Amber_3720 小时前
深入理解Go 与 PHP 在参数传递上的核心区别
android·golang·php
_祝你今天愉快1 天前
Android FrameWork - 开机启动 SystemServer 进程
android