我一直在尝试使用ServiceStack.Text.JsConfig.RegisterTypeForAot();在一个方法中,该方法在运行时不用于解决我的AOT问题,但当我对它的调用太多时,它会遇到其他奇怪的问题。我已经对各种类型进行了10次调用,包括类、structs和enum。当我有9个电话时,一切都很好,我已经打乱了一些类型,所以我很确定这就是号码。当我接到10个电话时。。。
Stacktrace:
at System.MonoType.ToString () [0x00000] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System/MonoType.cs:636
at System.Exception.get_ClassName () [0x0000b] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System/Exception.cs:141
at System.Exception.ToString () [0x00000] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System/Exception.cs:286
at (wrapper runtime-invoke) object.runtime_invoke_dynamic (intptr,intptr,intptr,intptr) <0xffffffff>
at System.Type.Equals (System.Type) [0x00020] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System/Type.cs:471
at System.Type.IsAssignableFrom (System.Type) [0x00008] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System/Type.cs:863
at System.Collections.Generic.EqualityComparer`1<intptr>..cctor () [0x00029] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System.Collections.Generic/EqualityComparer.cs:42
at (wrapper runtime-invoke) object.runtime_invoke_dynamic (intptr,intptr,intptr,intptr) <0xffffffff>
at System.Collections.Generic.Dictionary`2<intptr, System.WeakReference>.Init (int,System.Collections.Generic.IEqualityComparer`1<intptr>) [0x00012] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:265
at System.Collections.Generic.Dictionary`2<intptr, System.WeakReference>..ctor () [0x00006] in /Developer/MonoTouch/Source/mono/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:223
at MonoTouch.ObjCRuntime.Runtime..cctor () <IL 0x00000, 0x0002b>
at (wrapper runtime-invoke) object.runtime_invoke_dynamic (intptr,intptr,intptr,intptr) <0xffffffff>
Native stacktrace:
0 TouchContainer 0x028dbda5 mono_handle_native_sigsegv + 244
1 TouchContainer 0x028a3cfd mono_sigsegv_signal_handler + 172
2 libsystem_c.dylib 0x320e8e93 _sigtramp + 42
3 TouchContainer 0x0093aa25 ServiceStack_Text_Common_JsWriter_WriteEnumFlags_System_IO_TextWriter_object + 381
=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================
TouchContainer是应用程序的名称。
这种情况似乎发生在应用程序运行的早期,一定是AOT中的错误或发出错误代码的东西。
有人有什么想法吗?我可以和Xamarin在这上面登记一张票吗?这看起来可能是棘手的工作一个小的重建项目。。。
Rolf建议(在bug注释中)在单点触摸参数中添加-f。这似乎已经解决了问题。