Unity Android IL2CPP构建失败:ARKit函数未定义引用问题求助
解决Unity Android构建时ARKit函数未定义引用的问题
核心原因
ARKit是苹果iOS专属的AR框架,你的Android构建环境中不存在对应的库文件,但项目代码或依赖中仍有调用ARKit原生函数的逻辑,导致链接阶段找不到这些符号,最终引发libil2cpp.so编译失败。
具体修复步骤
清理ARKit相关依赖
- 打开Unity的
Package Manager,搜索ARKit XR Plugin这类ARKit相关包:如果项目不需要iOS AR功能,直接卸载;如果需要跨平台,在Android平台下禁用该插件(在包的详情面板中取消勾选Android平台支持)。 - 检查项目
Plugins文件夹,找到iOS专属的ARKit原生库(.a或.framework格式文件),在Inspector面板的Platform Settings中设置为仅iOS生效,取消Android的勾选。
- 打开Unity的
隔离iOS专属代码
- 全局搜索项目代码中
SessionRemoveUserAnchor、HitTest、StartSession等ARKit相关函数调用。 - 使用Unity平台宏定义包裹iOS专属代码,确保Android构建时不会编译到这些逻辑:
#if UNITY_IOS // ARKit相关调用代码 #endif
- 全局搜索项目代码中
重置编译环境与设置
- 打开
Player Settings->Other Settings->Configuration,确认Scripting Backend为IL2CPP,仅勾选Android需要的Target Architectures(如ARM64)。 - 删除项目根目录下的
Library、Temp、Obj文件夹,清空Unity缓存后重新打开项目并尝试构建。
- 打开
排查第三方插件依赖
检查Firebase、Mapbox等插件的版本与配置,部分插件可能默认引入了AR相关扩展模块。更新插件到最新稳定版,或在插件设置中禁用Android平台下不必要的AR相关功能。
内容的提问来源于stack exchange,提问作者Just a curious idiot
相关产品推荐
相关产品推荐

