问题描述
我正在尝试导出一个使用SignalR Core并包含System.Text.Json
作为参考的Unity项目。每个导入的dll是netstandard2.0
。但我收到此错误:
Failed running F:\Unity\2020.1.3f1\Editor\Data\il2cpp\build/deploy/net471/UnityLinker.exe -out=C:/code/TestWalk/Temp/StagingArea/Data/Managed/tempStrip -x=C:/Users/serio/AppData/Local/Temp/tmp5f6b4dea.tmp -x=C:/code/TestWalk/Temp/StagingArea/Data/Managed/TypesInScenes.xml -x=C:/code/TestWalk/Assets/Plugins/link.xml -d=C:/code/TestWalk/Temp/StagingArea/Data/Managed --include-unity-root-assembly=C:/code/TestWalk/Temp/StagingArea/Data/Managed/Assembly-CSharp.dll --dotnetruntime=il2cpp --dotnetprofile=unityaot --use-editor-options --include-directory=C:/code/TestWalk/Temp/StagingArea/Data/Managed --rule-set=Conservative --editor-data-file=C:/code/TestWalk/Temp/StagingArea/Data/Managed/EditorToUnityLinkerData.json --platform=WebGL --enable-engine-module-stripping --engine-modules-asset-file=F:/Unity/2020.1.3f1/Editor/Data/PlaybackEngines/WebGLSupport/Whitelists/../modules.asset
stdout:
Fatal error in Unity CIL Linker
Mono.Linker.MarkException: Error processing method: 'System.Text.Json.ImmutableCollectionCreator System.Text.Json.ReflectionMemberAccessor::ImmutableDictionaryCreaterange(System.Type,System.Type,System.Type)' in assembly: 'System.Text.Json.dll' ---> System.NullReferenceException: Object reference not set to an instance of an object.
at Unity.Linker.Steps.Marking.ReflectionMarking.GetTypesInNewArr(ReflectionUsageContext reflectionContext,DetailedStackItem startStackItem,DetailedStackItem endStackItem,List`1 typeReferences)
at Unity.Linker.Steps.Marking.ReflectionMarking.ProcessReflectionGetter[T](ReflectionUsageContext reflectionContext,DetailedStackItem stackItem,Func`2 getMembers,Func`3 bindingFlagsMatch,Func`3 parameterTypesMatch,Action`1 markMatch)
at Unity.Linker.Steps.Marking.ReflectionMarking.ProcessGetConstructor(ReflectionUsageContext reflectionContext,DetailedStackItem stackItem)
at Unity.Linker.Steps.Marking.ReflectionMarking.MarkThingsUsedViaReflection(MethodBody body)
at Unity.Linker.Steps.UnityMarkStep.MarkReflectionLikeDependencies(MethodBody body)
at Mono.Linker.Steps.MarkStep.MarkMethodBody(MethodBody body)
at Unity.Linker.Steps.UnityMarkStep.MarkMethodBody(MethodBody body)
at Mono.Linker.Steps.MarkStep.ProcessMethod(MethodDeFinition method)
at Unity.Linker.Steps.UnityMarkStep.ProcessMethod(MethodDeFinition method)
at Mono.Linker.Steps.MarkStep.ProcessQueue()
--- End of inner exception stack trace ---
at Mono.Linker.Steps.MarkStep.ProcessQueue()
at Mono.Linker.Steps.MarkStep.ProcessprimaryQueue()
at Mono.Linker.Steps.MarkStep.Process()
at Mono.Linker.Steps.MarkStep.Process(LinkContext context)
at Unity.Linker.Steps.UnityMarkStep.Process(LinkContext context)
at Mono.Linker.Pipeline.Processstep(LinkContext context,IStep step)
at Unity.Linker.UnityPipeline.Processstep(LinkContext context,IStep step)
at Mono.Linker.Pipeline.Process(LinkContext context)
at Unity.Linker.UnityDriver.Run()
at Unity.Linker.UnityDriver.RunDriverWithoutErrorHandling()
at Unity.Linker.UnityDriver.RunDriver()
stderr:
UnityEngine.Debug:LogError(Object)
UnityEditorInternal.Runner:RunProgram(Program,String,CompilerOutputParserBase)
UnityEditorInternal.Runner:RunManagedProgram(String,CompilerOutputParserBase,Action`1)
UnityEditorInternal.AssemblyStripper:RunAssemblyLinker(IEnumerable`1,String&,String)
UnityEditorInternal.AssemblyStripper:StripAssembliesTo(String,IEnumerable`1,UnityLinkerRun@R_143_4045@ion)
UnityEditorInternal.AssemblyStripper:RunAssemblyStripper(UnityLinkerRun@R_143_4045@ion)
UnityEditorInternal.AssemblyStripper:StripAssemblies(String,BaseUnityLinkerPlatformProvider,IIl2CppPlatformProvider,RuntimeClassRegistry,ManagedStrippingLevel)
UnityEditorInternal.IL2CPPBuilder:Run()
UnityEditorInternal.IL2CPPUtils:RunIl2Cpp(String,Action`1,RuntimeClassRegistry)
UnityEngine.GUIUtility:ProcessEvent(Int32,IntPtr,Boolean&)
System.Text.Json
使用的版本4.7.2。
编辑:Windows x86_64构建完美运行。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)