Unity无法执行IL2CPP构建求助(附详细错误日志)
Unity IL2CPP构建失败:Google.Apis.Core与Newtonsoft.Json依赖解析错误
核心错误信息
ILLink: error IL1999: 错误:针对UnityAot-Win32配置文件进行链接时,无法解析Google.Apis.Core.dll程序集中Google.Apis.Json.RFC3339DateTimeConverter类型的基类型Newtonsoft.Json.JsonConverter Unity CIL链接器发生致命错误 Unity.Linker.StrippingResolutionBaseTypeException: 错误:针对UnityAot-Win32配置文件进行链接时,无法解析Google.Apis.Core.dll程序集中Google.Apis.Json.RFC3339DateTimeConverter类型的基类型Newtonsoft.Json.JsonConverter
解决方案
检查Newtonsoft.Json包兼容性与完整性
确认项目中已正确导入Newtonsoft.Json包,版本需与Google.Apis.Core的依赖版本匹配。在Package Manager中查看包状态,若为手动导入的dll,检查其在Assets/Plugins或对应目录下是否存在,且在Inspector面板中勾选Include in Build,并为Windows平台启用该dll。添加Link.xml保留规则
在Assets目录下创建或修改link.xml文件,添加以下规则防止链接器剥离必要类型:<linker> <!-- 保留Google.Apis.Core完整程序集 --> <assembly fullname="Google.Apis.Core" preserve="all"/> <!-- 保留Newtonsoft.Json的JsonConverter基类 --> <assembly fullname="Newtonsoft.Json"> <type fullname="Newtonsoft.Json.JsonConverter" preserve="all"/> </assembly> </linker>调整Managed Stripping级别
打开Player Settings > Other Settings > Configuration,将Managed Stripping Level设置为Low(测试时可临时设为Disabled),降低链接器的剥离强度,避免误删依赖类型。验证Google.Apis.Core的平台配置
选中Google.Apis.Core.dll,在Inspector的Platform Settings中确保当前构建平台(WindowsDesktop)处于启用状态,且未被排除在构建外。
完整错误日志
Building C:\Users\Chenr\Documents\Unity Projects\NewMada\MDAProject\Library\Bee\artifacts\unitylinker_dwek.traceevents failed with output: C:\Program Files\Unity\Hub\Editor\2021.3.23f1\Editor\Data\il2cpp\build\deploy\UnityLinker.exe --search-directory=C:/Users/Chenr/Documents/Unity Projects/NewMada/MDAProject/Temp/StagingArea/Data/Managed --out=Library/Bee/artifacts/WinPlayerBuildProgram/ManagedStripped --include-link-xml=C:/Users/Chenr/Documents/Unity Projects/NewMada/MDAProject/Temp/StagingArea/Data/Managed\MethodsToPreserve.xml --include-link-xml=C:/Users/Chenr/Documents/Unity Projects/NewMada/MDAProject/Temp/StagingArea/Data/Managed\TypesInScenes.xml --include-link-xml=C:/Users/Chenr/Documents/Unity Projects/NewMada/MDAProject/Temp/StagingArea/Data/Managed\SerializedTypes.xml --include-link-xml=C:\Users\Chenr\Documents\Unity Projects/NewMada/MDAProject\Temp\burst.link.xml --include-link-xml=C:\Users\Chenr\Documents\Unity Projects/NewMada/MDAProject\Assets\Photon\PhotonUnityNetworking\link.xml --include-directory=C:/Users/Chenr/Documents/Unity Projects/NewMada/MDAProject/Temp/StagingArea/Data/Managed --profiler-report --profiler-output-file=C:/Users/Chenr/Documents/Unity Projects/NewMada/MDAProject/Library/Bee/artifacts/unitylinker_dwek.traceevents --dotnetprofile=unityaot-win32 --dotnetruntime=Il2Cpp --platform=WindowsDesktop --use-editor-options --editor-settings-flag=None,Development --engine-modules-asset-file=C:/Program Files/Unity/Hub/Editor/2021.3.23f1/Editor/Data/PlaybackEngines/WindowsStandaloneSupport/modules.asset --editor-data-file=C:/Users/Chenr/Documents/Unity Projects/NewMada/MDAProject/Temp/StagingArea/Data/Managed/EditorToUnityLinkerData.json --include-unity-root-assembly=C:/Users/Chenr/Documents/Unity Projects/NewMada/MDAProject/Temp/StagingArea/Data/Managed/Assembly-CSharp-firstpass.dll --include-unity-root-assembly=C:/Users/Chenr/Documents/Unity Projects/NewMada/MDAProject/Temp/StagingArea/Data/Managed/Assembly-CSharp.dll --include-unity-root-assembly=C:/Users/Chenr/Documents/Unity Projects/NewMada/MDAProject/Temp/StagingArea/Data/Managed/PhotonChat.dll --include-unity-root-assembly=C:/Users/Chenr/Documents/Unity Projects/NewMada/MDAProject/Temp/StagingArea/Data/Managed/Unity.RenderPipelines.Universal.Runtime.dll --include-unity-root-assembly=C:/Users/Chenr/Documents/Unity Projects/NewMada/MDAProject/Temp/StagingArea/Data/Managed/Unity.TextMeshPro.dll --include-unity-root-assembly=C:/Users/Chenr/Documents/Unity Projects/NewMada/MDAProject/Temp/StagingArea/Data/Managed/PhotonRealtime.dll --include-unity-root-assembly=C:/Users/Chenr/Documents/Unity Projects/NewMada/MDAProject/Temp/StagingArea/Data/Managed/PhotonUnityNetworking.Utilities.dll --include-unity-root-assembly=C:/Users/Chenr/Documents/Unity Projects/NewMada/MDAProject/Temp/StagingArea/Data/Managed/UnityEngine.UI.dll --include-unity-root-assembly=C:/Users/Chenr/Documents/Unity Projects/NewMada/MDAProject/Temp/StagingArea/Data/Managed/PhotonUnityNetworking.dll --include-unity-root-assembly=C:/Users/Chenr/Documents/Unity Projects/NewMada/MDAProject/Temp/StagingArea/Data/Managed/Unity.RenderPipelines.Core.Runtime.dll --include-unity-root-assembly=C:/Users/Chenr/Documents/Unity Projects/NewMada/MDAProject/Temp/StagingArea/Data/Managed/SimpleFileBrowser.Runtime.dll --include-unity-root-assembly=C:/Users/Chenr/Documents/Unity Projects/NewMada/MDAProject/Temp/StagingArea/Data/Managed/Elringus.UnityGoogleDrive.Runtime.dll --include-unity-root-assembly=C:/Users/Chenr/Documents/Unity Projects/NewMada/MDAProject/Temp/StagingArea/Data/Managed/RTLTMPro.dll --include-unity-root-assembly=C:/Users/Chenr/Documents/Unity Projects/NewMada/MDAProject/Temp/StagingArea/Data/Managed/PhotonUnityNetworking.Demos.dll --include-unity-root-assembly=C:/Users/Chenr/Documents/Unity Projects/NewMada/MDAProject/Temp/StagingArea/Data/Managed/DOTween.dll --print-command-line --enable-analytics ILLink: error IL1999: 错误:针对UnityAot-Win32配置文件进行链接时,无法解析Google.Apis.Core.dll程序集中Google.Apis.Json.RFC3339DateTimeConverter类型的基类型Newtonsoft.Json.JsonConverter Unity CIL链接器发生致命错误 Unity.Linker.StrippingResolutionBaseTypeException: 错误:针对UnityAot-Win32配置文件进行链接时,无法解析Google.Apis.Core.dll程序集中Google.Apis.Json.RFC3339DateTimeConverter类型的基类型Newtonsoft.Json.JsonConverter at Unity.Linker.MonoBehaviorUtilities.DerivesFrom(UnityLinkContext context, TypeDefinition type, String[] possibleBaseNames) at Unity.Linker.MonoBehaviorUtilities.IsMonoBehaviourOrScriptableObject(UnityLinkContext context, TypeDefinition type) at Unity.Linker.Steps.Rooting.ResolveFromMonoBehaviours.<Process>b__6_0(TypeDefinition t) at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext() at Unity.Linker.Steps.Rooting.ResolveFromMonoBehaviours.Process(LinkContext context) at Unity.Linker.UnityPipeline.ProcessStep(LinkContext context, IStep step) at Mono.Linker.Pipeline.Process(LinkContext context) at Unity.Linker.UnityDriver.UnityRun(Boolean noProfilerAllowed, ILogger customLogger) at Unity.Linker.UnityDriver.RunDriverWithoutErrorHandling(ILogger customLogger, Boolean noProfilerAllowed) at Unity.Linker.UnityDriver.RunDriver() UnityEditor.EditorApplication:Internal_CallGlobalEventHandler ()
内容的提问来源于stack exchange,提问作者Chen Robin
相关产品推荐
相关产品推荐

