ios - 为设备编译但不在模拟器上编译时出现 MonoTouch 错误 : MONO_PATCH_INFO_JIT_ICALL_ADDR mono_marshal_safearray_create

标签 ios binding crash xamarin.ios armv6

在 MonoTouch 中,为设备编译时出现这个奇怪的错误
(在模拟器上它工作正常,只有在为 iPhone 编译时它
崩溃):

    Loaded assembly:
    /private/var/mobile/Applications/FC6B7E68-E408-42A9-92A6-BC5AC73B3EEC/MyApp4.app/Mono.Security.dll
    [External]
    Loaded assembly:
    /private/var/mobile/Applications/FC6B7E68-E408-42A9-92A6-BC5AC73B3EEC/MyApp4.app/System.dll
    [External]
    Loaded assembly:
    /private/var/mobile/Applications/FC6B7E68-E408-42A9-92A6-BC5AC73B3EEC/MyApp4.app/monotouch.dll
    [External]
    unknown MONO_PATCH_INFO_JIT_ICALL_ADDR mono_marshal_safearray_create
    * Assertion: should not be reached at ../../../../../mono/mono/mini/mini.c:3179

    Stacktrace:

     at (wrapper managed-to-native)
    object.__icall_wrapper_mono_object_new_fast (intptr) <0xffffffff>

    Native stacktrace:

       0   MyApp4                     0x00628b38 mono_handle_native_sigsegv + 456
       1   MyApp4                     0x006561e4 sigabrt_signal_handler + 168
       2   libsystem_c.dylib                   0x337ed539 _sigtramp + 48
       3   libsystem_c.dylib                   0x337e2f5b pthread_kill + 54
       4   libsystem_c.dylib                   0x337dbfeb abort + 94
       5   MyApp4                     0x007a6310 monoeg_g_logv + 268
       6   MyApp4                     0x007a63e4 monoeg_assertion_message + 80
       7   MyApp4                     0x005fdea0 mono_resolve_patch_target + 2736
       8   MyApp4                     0x0061cd7c mono_aot_plt_resolve + 432
       9   MyApp4                     0x0062b460 mono_aot_plt_trampoline + 88
       10  MyApp4                     0x003948c0 generic_trampoline_aot_plt + 136
       11  MyApp4                     0x00357370
wrapper_runtime_invoke_object_runtime_invoke_dynamic_intptr_intptr_intptr_intptr
+ 200
       12  MyApp4                     0x006013a8 mono_jit_runtime_invoke + 2892
       13  MyApp4                     0x00714dd8 mono_runtime_invoke + 200
       14  MyApp4                     0x0070d6cc mono_runtime_class_init_full + 2060
       15  MyApp4                     0x0070ceb0 mono_runtime_class_init + 28
       16  MyApp4                     0x005fed78 mono_jit_compile_method_inner + 224
       17  MyApp4                     0x005fffa4 mono_jit_compile_method_with_opt + 660
       18  MyApp4                     0x00600bcc mono_jit_runtime_invoke + 880
       19  MyApp4                     0x00714dd8 mono_runtime_invoke + 200
       20  MyApp4                     0x007cc154 monotouch_init + 640
       21  MyApp4                     0x005f71d8 main + 3704
       22  MyApp4                     0x00070b58 start + 52

=================================================================
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.
=================================================================

这让我发疯。我不知道,崩溃似乎发生在调用任何代码之前。我在我的项目中使用了两个绑定(bind)库(TestFlight 和 CorePlot),所以这可能与 MonoTouch 在 iPhone 的 ARMV6 架构中存在的互操作编码问题有关。

任何帮助或建议,无论多么小,都会受到赞赏。
谢谢!

更新:
我可以确认使用实验性编译器(在为设备编译时在 MonoDevelop 中设置:LLVM armv7)应用程序工作正常,根本没有崩溃。这似乎与 MonoTouch 的 armv6 绑定(bind)错误有关。但是我需要调试我的应用程序,并且 LLVM 编译器在 Debug模式下不起作用。有一些解决方法吗?

现在有一个关于 Xamarin 邮件列表的讨论:

http://monotouch.2284126.n4.nabble.com/Native-library-with-Monotouch-5-0-part-2-td3992408.html

最佳答案

运行时正在寻找方法 mono_marshal_safearray_create(在运行时内部),但该方法不包含在 MonoTouch 中,因为它与 COM 相关(在 iOS 上不可用)。

这只是一个猜测,但你是否在任何地方都有这样的属性:

[MarshalAs (UnmanagedType.SafeArray, ...)]

在您的代码或您正在使用的任何外部库中?请记住,这并不是获得与 COM 相关的代码的唯一方法。

无论如何我推荐filing a bug ,以便可以修复此问题(或至少有更好的错误报告)。请提供一种重现它的方法(源代码或应用程序本身应该可以解决这个错误)。

关于ios - 为设备编译但不在模拟器上编译时出现 MonoTouch 错误 : MONO_PATCH_INFO_JIT_ICALL_ADDR mono_marshal_safearray_create,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8055442/

相关文章:

ios - 从 native ios 应用程序固定图像时出现无效参数 'image_url' 错误

ios - 以编程方式将标签/字符串添加到 UITableView,就像在 iPhone 设置中看到的那样

android - Viewmodel 观察 LiveData - 如何?

ios - 我正在尝试启动录制摄像机 - 它因 SIGABRT 信号而崩溃

iphone - iPhone UIImage方法崩溃

ios - 单例 - 错误 : [CFString isNSString__] message sent to deallocated instance

ios - 如何在corePlote中制作圆形图例?

wpf - 自定义图片框中的图像不刷新

c# - 根据绑定(bind)的 View 模型实例显示 ui 控件

iphone - for循环中的EXC_BAD_ACCESS