记录一个Unity通过il2cpp打包安卓的错误

报错

Failed running C:\Program Files\Unity\Hub\Editor\2019.3.15f1\Editor\Data\il2cpp\build/deploy/net471/UnityLinker.exe 
-out="D:/Program Files/Farm/Temp/StagingArea/assets/bin/Data/Managed/tempStrip" 
-x="D:/Program Files/Farm/Temp/StagingArea/assets/bin/Data/Managed/../platform_native_link.xml" 
-x="D:/Program Files/Farm/Temp/StagingArea/assets/bin/Data/Managed/TypesInScenes.xml" 
-x="D:/Program Files/Farm/Assets/XLua/Gen/link.xml" 
-d="D:/Program Files/Farm/Temp/StagingArea/assets/bin/Data/Managed" 
--include-unity-root-assembly="D:/Program Files/Farm/Temp/StagingArea/assets/bin/Data/Managed/Assembly-CSharp-firstpass.dll" 
--include-unity-root-assembly="D:/Program Files/Farm/Temp/StagingArea/assets/bin/Data/Managed/Assembly-CSharp.dll" 
--include-unity-root-assembly="D:/Program Files/Farm/Temp/StagingArea/assets/bin/Data/Managed/UnityEngine.UI.dll" --dotnetruntime=il2cpp 
--dotnetprofile=unityaot --use-editor-options 
--include-directory="D:/Program Files/Farm/Temp/StagingArea/assets/bin/Data/Managed" 
--rule-set=Conservative --editor-data-file="D:/Program Files/Farm/Temp/StagingArea/assets/bin/Data/Managed/EditorToUnityLinkerData.json" 
--platform=Android --enable-engine-module-stripping -
-engine-modules-asset-file="C:/Program Files/Unity/Hub/Editor/2019.3.15f1/Editor/Data/PlaybackEngines/AndroidPlayer/Whitelists/../modules.asset"

具体

Fatal error in Unity CIL Linker
Mono.Linker.MarkException: Error processing method: 'System.Boolean Mono.Unity.UnityTls::get_IsSupported()' in assembly: 'System.dll' ---> Mono.Cecil.ResolutionException: Failed to resolve Mono.Security.Interface.MonoTlsProvider
   �� Mono.Linker.BCL.EventTracingForWindows.IsEventSourceImplementation(TypeDefinition type, LinkContext context)
   �� Mono.Linker.Steps.MarkStep.MarkType(TypeReference reference)
   �� Unity.Linker.Steps.Marking.BaseMarkStepExtension.MarkTypeAndMembers(TypeDefinition type, Boolean fields, Boolean methods, Boolean properties, Boolean events)
   �� Unity.Linker.Steps.Marking.ClassLibraryMarking.DoAdditionalMethodProcessingForUnityTls(MethodDefinition method)
   �� Unity.Linker.Steps.UnityMarkStep.DoAdditionalMethodProcessing(MethodDefinition method)
   �� Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDefinition method)
   �� Unity.Linker.Steps.UnityMarkStep.ProcessMethod(MethodDefinition method)
   �� Mono.Linker.Steps.MarkStep.ProcessQueue()
   --- �ڲ��쳣��ջ���ٵĽ�β ---
   �� Mono.Linker.Steps.MarkStep.ProcessQueue()
   �� Mono.Linker.Steps.MarkStep.ProcessPrimaryQueue()
   �� Mono.Linker.Steps.MarkStep.Process()
   �� Mono.Linker.Steps.MarkStep.Process(LinkContext context)
   �� Unity.Linker.Steps.UnityMarkStep.Process(LinkContext context)
   �� Mono.Linker.Pipeline.ProcessStep(LinkContext context, IStep step)
   �� Unity.Linker.UnityPipeline.ProcessStep(LinkContext context, IStep step)
   �� Mono.Linker.Pipeline.Process(LinkContext context)
   �� Unity.Linker.UnityDriver.Run()
   �� Unity.Linker.UnityDriver.RunDriverWithoutErrorHandling()
   �� Unity.Linker.UnityDriver.RunDriver()
  • 问题在于System.dll中的Xml部分转化为c++代码失败,c++未实现对应功能

解决办法:把项目中所有System.xml相关部分移除该用其他实现

猜你喜欢

转载自blog.csdn.net/qq_40080418/article/details/106672178