xamarin_find_protocol_wrapper_type、SIGABRT ABORT 在 IOS Xamarin.froms 中崩溃

问题描述 投票:0回答:1

我正在开发 Xamarin.forms 应用程序。我已经实现了 google firebase crashlytics 来追踪崩溃。我在 IOS 中经常遇到崩溃。崩溃的标题是“xamarin_find_protocol_wrapper_type,SIGABRT ABORT 0x00000001c7a06558”。这是我从 firebase 获得的轨迹。不知道重现的原因和方式。

Crashed: Thread Pool Worker
0  libsystem_kernel.dylib         0x7558 __pthread_kill + 8
1  libsystem_pthread.dylib        0x7118 pthread_kill + 268
2  libsystem_c.dylib              0x1d178 abort + 180
3  RHHMobile.iOS                  0x3273ea0 xamarin_find_protocol_wrapper_type + 1189 (runtime.m:1189)
4  RHHMobile.iOS                  0x313a944 mono_invoke_unhandled_exception_hook + 1299 (exception.c:1299)
5  RHHMobile.iOS                  0x31e898c mono_thread_internal_unhandled_exception + 6010 (threads.c:6010)
6  RHHMobile.iOS                  0x31e0004 worker_callback + 392 (threadpool.c:392)
7  RHHMobile.iOS                  0x31dd810 worker_thread + 502 (threadpool-worker-default.c:502)
8  RHHMobile.iOS                  0x31e8fa4 start_wrapper_internal + 1289 (threads.c:1289)
9  RHHMobile.iOS                  0x31e8e28 start_wrapper + 1310 (threads.c:1310)
10 libsystem_pthread.dylib        0x16b8 _pthread_start + 148
11 libsystem_pthread.dylib        0xb88 thread_start + 8
ios xamarin.forms xamarin.ios sigabrt
1个回答
0
投票

如果在调试时无法重现问题,则可能是链接问题。一种解决方案是将

[Preserve(AllMembers=true)]
属性添加到所有 iOS 项目类和常见 Xamarin 类(模型、ViewModel)的顶部。

然后,使用以下代码在您的 iOS 项目中添加一个

LinkerKeep.xml
文件:

<?xml version="1.0" encoding="utf-8"?>
<linker>
  <assembly fullname="System.Core">
    <type fullname="System.Linq.Expressions.Expression`1"></type>
    <type fullname="System.Linq.Queryable"></type>
  </assembly>
</linker>

然后,将文件设置为 LinkDescription。 您可以右键单击 LinkerKeep.xml 文件并选择“Build Action”并将其设置为 BundleResource。或者,您可以在 Xamarin.iOS 项目文件的

<ItemGroups>
内添加此属性:
<LinkDescription Include="LinkerKeep.xml" />

这应该可以解决您可能遇到的任何链接问题。

© www.soinside.com 2019 - 2024. All rights reserved.