Unity AR Foundation 4.2.8打包报错:MissingTextureException问题求助
问题场景
使用AR Foundation 4.2.8与AR Core 4.2.8版本打包应用时,持续触发以下错误:
MissingTextureException: 引发了类型为'UniteEditor.XR.ARCore.ArCoreImg+MissingTextureException'的异常。
UnityEditor.XR.ARCore.ArCoreImg.CopyTo (UnityEngine.XR.ARSubsystems.XRReferenceImage referenceImage, System.String destinationDirectory) (at Library/PackageCache/com.unity.xr.arcore@4.2.8/Editor/ArCoreImg.cs:130)
UnityEditor.XR.ARCore.ArCoreImg+<g__EntryParts|16_0>d.MoveNext () (at Library/PackageCache/com.unity.xr.arcore@4.2.8/Editor/ArCoreImg.cs:156)
System.String.Join (System.String separator, System.Collections.Generic.IEnumerable`1[T] values) (at <6073cf49ed704e958b8a66d540dea948>:0)
UnityEditor.XR.ARCore.ArCoreImg.ToImgDBEntry (UnityEngine.XR.ARSubsystems.XRReferenceImage referenceImage, System.String destinationDirectory) (at Library/PackageCache/com.unity.xr.arcore@4.2.8/Editor/ArCoreImg.cs:163)
UnityEditor.XR.ARCore.ArCoreImg.ToInputImageListPath (UnityEngine.XR.ARSubsystems.XRReferenceImageLibrary library, System.String destinationDirectory) (at Library/PackageCache/com.unity.xr.arcore@4.2.8/Editor/ArCoreImg.cs:171)
UnityEditor.XR.ARCore.ArCoreImg.BuildDb (UnityEngine.XR.ARSubsystems.XRReferenceImageLibrary library) (at Library/PackageCache/com.unity.xr.arcore@4.2.8/Editor/ArCoreImg.cs:97)
UnityEditor.XR.ARCore.ARCoreImageLibraryBuildProcessor.BuildAssets () (at Library/PackageCache/com.unity.xr.arcore@4.2.8/Editor/ARCoreImageLibraryBuildProcessor.cs:37)
重新引发为Exception:构建XRReferenceImageLibrary资源Assets/ARProject/Core/Scenes/QuestionAR/ReferenceImageLibrary/QrCodeReference.asset时出错:名为'Chicken'的XRReferenceImage缺少纹理。
UnityEditor.XR.ARCore.ARCoreImageLibraryBuildProcessor.Rethrow (UnityEngine.XR.ARSubsystems.XRReferenceImageLibrary library, System.String message, System.Exception innerException) (at Library/PackageCache/com.unity.xr.arcore@4.2.8/Editor/ARCoreImageLibraryBuildProcessor.cs:16)
UnityEditor.XR.ARCore.ARCoreImageLibraryBuildProcessor.BuildAssets () (at Library/PackageCache/com.unity.xr.arcore@4.2.8/Editor/ARCoreImageLibraryBuildProcessor.cs:41)
UnityEditor.XR.ARCore.ARCoreImageLibraryBuildProcessor.UnityEditor.Build.IPreprocessBuildWithReport.OnPreprocessBuild (UnityEditor.Build.Reporting.BuildReport report) (at Library/PackageCache/com.unity.xr.arcore@4.2.8/Editor/ARCoreImageLibraryBuildProcessor.cs:74)
UnityEditor.Build.BuildPipelineInterfaces+<>c__DisplayClass16_0.b__1 (UnityEditor.Build.IPreprocessBuildWithReport bpp) (at <31b86d204baf45de8328f2d1261a79f7>:0)
UnityEditor.Build.BuildPipelineInterfaces.InvokeCallbackInterfacesPair[T1,T2] (System.Collections.Generic.List1[T] oneInterfaces, System.Action1[T] invocationOne, System.Collections.Generic.List1[T] twoInterfaces, System.Action1[T] invocationTwo, System.Boolean exitOnFailure) (at <31b86d204baf45de8328f2d1261a79f7>:0)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)
错误核心是名为'Chicken'的XRReferenceImage条目缺少有效纹理引用,导致AR Core构建识别图片数据库时失败。
解决方案
定位并检查目标引用库
在Unity编辑器中找到Assets/ARProject/Core/Scenes/QuestionAR/ReferenceImageLibrary/QrCodeReference.asset,双击打开引用图片库编辑器,找到'Chicken'条目,确认其Texture字段是否为空或显示红色问号(引用失效)。修复纹理引用
- 若纹理已被删除/移动:重新导入对应的Chicken纹理到项目Assets目录,确保文件路径正确;
- 若纹理存在但引用失效:点击Texture字段的选择按钮,重新选中正确的纹理文件。
验证纹理配置
选中修复后的纹理,在Inspector面板确认以下设置:- Texture Type设为
2D(AR识别的基础要求); - 勾选Read/Write Enabled(AR Core需要读取纹理像素数据用于构建识别库);
- 纹理格式推荐使用
RGBA 32 bit或RGB 24 bit,避免使用有损压缩格式导致识别失效。
- Texture Type设为
清理后重新构建
执行File -> Build Settings -> Clean Build(或手动删除本地Build目录),再重新尝试打包,确保构建过程中无资源缺失提示。
内容的提问来源于stack exchange,提问作者Tonderai Ratisai

