ios - 仅设备上的 RestSharp/MonoTouch 错误

标签 ios xamarin.ios restsharp

我遇到了这个错误,该错误仅发生在设备上,而不发生在模拟器上。 我正在尝试保存包含以下字段的用户个人资料:名字、姓氏、电子邮件、性别、出生日期和可选照片 (byte[])。

无论我是否使用照片,都会调用 API,然后我会立即收到此错误。看起来该错误与 Rest 反序列化有关。

Stacktrace:

at RestSharp.RestClient.Deserialize<T> (RestSharp.IRestRequest,RestSharp.RestResponse) <0x001ab>
at RestSharp.RestClient/<ExecuteAsync>c__AnonStorey9`1.<>m__19 (RestSharp.RestResponse,RestSharp.RestRequestAsyncHandle) <0x00147>
at RestSharp.RestClient.ProcessResponse (RestSharp.HttpResponse,RestSharp.RestRequestAsyncHandle,System.Action`2<RestSharp.RestResponse, RestSharp.RestRequestAsyncHandle>) <IL 0x0000b, 0x000db>
at RestSharp.RestClient/<ExecuteAsync>c__AnonStorey8.<>m__15 (RestSharp.HttpResponse) <IL 0x00013, 0x0009b>
at RestSharp.Http.ExecuteCallback (RestSharp.HttpResponse,System.Action`1<RestSharp.HttpResponse>) <IL 0x00002, 0x00093>
at RestSharp.Http/<ResponseCallback>c__AnonStorey6.<>m__5 (System.Net.HttpWebResponse) <IL 0x00018, 0x000c3>
at RestSharp.Http.GetRawResponseAsync (System.IAsyncResult,System.Action`1<System.Net.HttpWebResponse>) <IL 0x0005f, 0x0078b>
at RestSharp.Http.ResponseCallback (System.IAsyncResult,System.Action`1<RestSharp.HttpResponse>) <IL 0x00060, 0x00363>
at RestSharp.Http/<RequestStreamCallback>c__AnonStorey5.<>m__4 (System.IAsyncResult) <IL 0x0000d, 0x00093>
at System.Net.WebAsyncResult.CB (object) [0x00000] in /Developer/MonoTouch/Source/mono/mcs/class/System/System.Net/WebAsyncResult.cs:148
at (wrapper runtime-invoke) object.runtime_invoke_dynamic (intptr,intptr,intptr,intptr) <0xffffffff>

Native stacktrace:

0   ScrapBoomiPhone                     0x00f5c5e5 mono_handle_native_sigsegv + 244
1   ScrapBoomiPhone                     0x00f7560d sigabrt_signal_handler + 112
2   libsystem_c.dylib                   0x34e5ce93 _sigtramp + 42
3   libsystem_c.dylib                   0x34e53123 pthread_kill + 58
4   libsystem_c.dylib                   0x34e8f973 abort + 94
5   ScrapBoomiPhone                     0x010160bb monoeg_g_log + 122
6   ScrapBoomiPhone                     0x00f52383 get_numerous_trampoline + 134
7   ScrapBoomiPhone                     0x00f5264b mono_aot_get_imt_thunk + 34
8   ScrapBoomiPhone                     0x00fc5e05 initialize_imt_slot + 72
9   ScrapBoomiPhone                     0x00fc6bcb build_imt_slots + 642
10  ScrapBoomiPhone                     0x00fc6ca5 mono_vtable_build_imt_slot + 80
11  ScrapBoomiPhone                     0x00f5e60d mono_convert_imt_slot_to_vtable_slot + 212
12  ScrapBoomiPhone                     0x00f5e7b9 common_call_trampoline + 180
13  ScrapBoomiPhone                     0x00f5d48b mono_vcall_trampoline + 158
14  ScrapBoomiPhone                     0x00752bd8 generic_trampoline_vcall + 136
15  ScrapBoomiPhone                     0x002656bc RestSharp_RestClient__ExecuteAsyncc__AnonStorey9_1__m__19_RestSharp_RestResponse_RestSharp_RestRequestAsyncHandle + 328
16  ScrapBoomiPhone                     0x0020d7a4 RestSharp_RestClient_ProcessResponse_RestSharp_HttpResponse_RestSharp_RestRequestAsyncHandle_System_Action_2_RestSharp_RestResponse_RestSharp_RestRequestAsyncHandle + 220
17  ScrapBoomiPhone                     0x002651a8 RestSharp_RestClient__ExecuteAsyncc__AnonStorey8__m__15_RestSharp_HttpResponse + 156
18  ScrapBoomiPhone                     0x001fe7d0 RestSharp_Http_ExecuteCallback_RestSharp_HttpResponse_System_Action_1_RestSharp_HttpResponse + 148
19  ScrapBoomiPhone                     0x00264c74 RestSharp_Http__ResponseCallbackc__AnonStorey6__m__5_System_Net_HttpWebResponse + 196
20  ScrapBoomiPhone                     0x001fe020 RestSharp_Http_GetRawResponseAsync_System_IAsyncResult_System_Action_1_System_Net_HttpWebResponse + 1932
21  ScrapBoomiPhone                     0x001fe41c RestSharp_Http_ResponseCallback_System_IAsyncResult_System_Action_1_RestSharp_HttpResponse + 868
22  ScrapBoomiPhone                     0x00264a9c RestSharp_Http__RequestStreamCallbackc__AnonStorey5__m__4_System_IAsyncResult + 148
23  ScrapBoomiPhone                     0x0035ad4c System_Net_WebAsyncResult_CB_object + 48
24  ScrapBoomiPhone                     0x006f7ff0 wrapper_runtime_invoke_object_runtime_invoke_dynamic_intptr_intptr_intptr_intptr + 200
25  ScrapBoomiPhone                     0x00f4a22f mono_jit_runtime_invoke + 1054
26  ScrapBoomiPhone                     0x00fc55ff mono_runtime_invoke + 90
27  ScrapBoomiPhone                     0x00fc5705 mono_runtime_delegate_invoke + 92
28  ScrapBoomiPhone                     0x00ff5ac1 async_invoke_thread + 2480
29  ScrapBoomiPhone                     0x00ff9c87 start_wrapper + 306
30  ScrapBoomiPhone                     0x0100ba5d thread_start_routine + 96
31  ScrapBoomiPhone                     0x00fdf939 gc_start_thread + 60
32  libsystem_c.dylib                   0x34e35311 <redacted> + 308
33  libsystem_c.dylib                   0x34e351d8 thread_start + 8

=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

我非常感谢对此的任何见解。谢谢!

最佳答案

5 ScrapBoomiPhone 0x010160bb monoeg_g_log + 122

堆栈跟踪中的该行暗示 Mono 运行时在崩溃之前尝试显示(记录)某些内容。在这种情况下,您应该使用 Xcode 的管理器来查看控制台日志。将会打印一些文本来告诉您出了什么问题。

最常见的情况(6.0.8 之前)是缺少蹦床(类型 0、1 或 2)。考虑到下面的堆栈框架,这种情况更有可能发生:

6 ScrapBoomiPhone 0x00f52383 get_numerous_trampoline + 134

参见here了解说明以及如何修复它(但您仍然需要阅读控制台以了解需要哪种蹦床类型 - 或者可能是其他类型)。

注:其中之一(刚刚发布)MonoTouch 6.0.8 主要新功能是它消除了(开发人员)更改此设置的需要(它会自动适应)。希望它的存在很快就会被完全遗忘。

关于ios - 仅设备上的 RestSharp/MonoTouch 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14132430/

相关文章:

iphone - 检查 UIWebView 是否滚动到底部

ios - 我可以在没有 SKAction 的情况下在屏幕上移动节点吗?

ios - 在 IOS tableview 中长扫删除

dll - 我可以将我自己的 DLL 用于我的 Xamarin iOS 和 Android 项目吗?

c# - 使用 RestSharp 和 WebAPI 进行数据流传输

c# - 为什么在 RestClient.Execute 工作时将 RestClient.ExecuteAsync 与 await 一起使用会静默失败?

ios - 如何使用适用于 iOS 应用程序的 Swift 将拟我表情贴纸添加到我的表情符号键盘

ios - HTML5 视频并不总是在 iPhone 上自动播放

ios:UITableVIewCell 扩展未按预期工作

c# - 使用 Nsubstitute 模拟 RestClient ExecuteAsync