You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows虚拟机Unity Android项目Azure DevOps构建il2cpp文件缺失求助

解决Unity Android项目在Azure DevOps流水线中BuildIl2CppTask失败问题

核心问题分析

  1. libil2cpp.dbg.so文件找不到:gradle任务执行完IL2CPP编译后,尝试移动调试符号文件libil2cpp.dbg.so到symbols目录,但Release模式下IL2CPP可能未生成该文件,或生成路径与预期不符。
  2. il2cpp工具目录缺失:流水线中找不到/src/main/Il2CppOutputProject/IL2CPP/build/deploy/il2cpp,原因是Unity导出项目时未完整包含该工具目录,或流水线环境中工具路径配置错误。

具体解决方案

方案1:修复调试符号文件移动逻辑

修改unityLibrary/build.gradle中的BuildIl2Cpp函数,添加文件存在性检查,避免因文件不存在报错:

// 替换原有的ant.move代码段
def dbgFilePath = workingDir + "/src/main/jniLibs/" + abi + "/libil2cpp.dbg.so"
def targetFilePath = workingDir + "/symbols/" + abi + "/libil2cpp.so"

// 先判断文件是否存在再执行移动
if (file(dbgFilePath).exists()) {
    ant.move(file: dbgFilePath, tofile: targetFilePath)
}

同时可在Unity中调整Build配置:

  • 打开Unity Editor → File → Build Settings → Android → Player Settings
  • 进入Publishing Settings,取消勾选「Debugging Symbols」(2021.3版本也可在Other Settings → Configuration中设置),避免Release模式生成调试符号文件。

方案2:解决il2cpp工具目录缺失问题

方法A:提交完整的IL2CPP工具目录到仓库

在本地Unity中导出Android项目时,勾选Export Project,确保unityLibrary/src/main/Il2CppOutputProject/IL2CPP/build/deploy目录完整,将该目录提交到代码仓库。

方法B:流水线中从Unity安装路径复制工具

在Azure DevOps的bash任务前添加PowerShell步骤,直接从Unity安装目录复制IL2CPP工具到项目路径:

# 替换...path...为项目实际路径
Copy-Item -Path "C:\Program Files\Unity\Hub\Editor\2021.3.14f1\Editor\Data\il2cpp\build\deploy\*" `
-Destination "$(System.ArtifactsDirectory)\...path...\il2CppOutputProject\IL2CPP\build\deploy\" `
-Recurse -Force

方法C:直接使用Unity全局IL2CPP工具路径

修改BuildIl2Cpp函数中的工具路径,跳过项目内的缺失目录:

// 替换原有的executable行
executable "C:/Program Files/Unity/Hub/Editor/2021.3.14f1/Editor/Data/il2cpp/build/deploy/il2cpp" + executableExtension

方案3:跳过调试符号处理(快速解决)

如果不需要调试符号,直接删除gradle任务中相关处理代码:

// 删除以下两行代码
// delete workingDir + "/src/main/jniLibs/" + abi + "/libil2cpp.sym.so"
// ant.move(file: workingDir + "/src/main/jniLibs/" + abi + "/libil2cpp.dbg.so", tofile: workingDir + "/symbols/" + abi + "/libil2cpp.so")

验证步骤

  1. 在本地Windows虚拟机中手动执行gradlew assembleRelease,确认问题是否复现。
  2. 检查流水线日志中的NDK/Unity版本是否与本地一致(日志显示NDK版本为21.3.6528147,确保路径配置正确)。

内容的提问来源于stack exchange,提问作者Muerte

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 05:55:33