Xamarin 如何使用libmonosgen-2.0.so处理崩溃?

Xamarin 如何使用libmonosgen-2.0.so处理崩溃?,xamarin,xamarin.android,Xamarin,Xamarin.android,从一段时间以来,我得到了没有任何.Net stacktrace的随机崩溃,但是有一个小的Android stacktrace(只有1个stackitem)指向libmonosgen-2.0.so。 事故的发生是随机的;当应用程序在随机真实设备上做得不多或做得不多时,可以从后台线程或主线程等调试或发布版本 有人知道怎么做吗??? (这似乎是一个单体/沙马林的问题,可能是一个已知的问题?) 我的开发配置: VS2017、Android 7.0和7.0(最低5.0)、所有Xamarin软件包更新、所有

从一段时间以来,我得到了没有任何.Net stacktrace的随机崩溃,但是有一个小的Android stacktrace(只有1个stackitem)指向libmonosgen-2.0.so。 事故的发生是随机的;当应用程序在随机真实设备上做得不多或做得不多时,可以从后台线程或主线程等调试或发布版本

有人知道怎么做吗??? (这似乎是一个单体/沙马林的问题,可能是一个已知的问题?)

我的开发配置: VS2017、Android 7.0和7.0(最低5.0)、所有Xamarin软件包更新、所有Android SDK库更新、MVVMCross 4.4

我添加了3个崩溃日志 崩溃1:

碰撞2:

09-11 14:15:50.890 I/DEBUG ( 352): pid: 28398, tid: 28398, name: myApp
09-11 14:15:50.890 I/DEBUG ( 352): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x7cfbc1a5 
09-11 14:15:50.900 I/DEBUG (352): r0 7cfbc1a1 r1 7cfbc1a1 r2 bea847f8 r3 aef301e4 
09-11 14:15:50.900 I/DEBUG ( 352): r4 b489d800 r5 7cfbc1a1 r6 b4946000 r7 9ba2f768 
09-11 14:15:50.900 I/DEBUG ( 352): r8 bea847f8 r9 b4827800 sl 00000000 fp bea847b8 
09-11 14:15:50.900 I/DEBUG ( 352): ip af136290 sp bea847a8 lr af003544 pc aef301bc cpsr 20070010 
09-11 14:15:50.900 I/DEBUG ( 352):  
09-11 14:15:50.900 I/DEBUG ( 352): backtrace: 
09-11 14:15:50.900 I/DEBUG ( 352): #00 pc 0013f1bc /data/app/myApp/lib/arm/libmonosgen-2.0.so (mono_class_from_mono_type+8)
事故3:

09-11 16:21:54.470 I/DEBUG ( 164): ABI: 'arm' 
09-11 16:21:54.471 I/DEBUG ( 164): pid: 9467, tid: 9467, name: myApp 
09-11 16:21:54.471 I/DEBUG ( 164): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xf0b9bc14 
09-11 16:21:54.499 I/DEBUG ( 164): r0 f0b9bbf4 r1 ba1e67c8 r2 00000049 r3 b9171668 
09-11 16:21:54.499 I/DEBUG ( 164): r4 ba1e67c8 r5 00000000 r6 a5085d18 r7 b9bbf529 
09-11 16:21:54.499 I/DEBUG ( 164): r8 ba1e67c8 r9 b9171668 sl b9bb52ac fp bed8f9d8 
09-11 16:21:54.499 I/DEBUG ( 164): ip f0b9bbf4 sp bed8f9c0 lr a516d034 pc a5085d20 cpsr a00f0110 
09-11 16:21:54.503 I/DEBUG ( 164):  
09-11 16:21:54.503 I/DEBUG ( 164): backtrace: 
09-11 16:21:54.503 I/DEBUG ( 164): #00 pc 001a8d20 /data/app/myApp/lib/arm/libmonosgen-2.0.so
编辑

@york shen msft仍在等待崩溃再次发生,但我确实遇到了一个包括libmonosgen-2.0和.Net stacktrace的崩溃

(搜索“致命”,上面是.Net stacktrace)


它发生在一个永远不会崩溃的Linq方法中,所以行为非常奇怪

事实证明,MVVMCross的构建/测试版本比我构建应用程序的Android版本高得多

将我的应用程序构建版本与MVVMCross构建的版本一致后,libmonosgen导致的所有奇怪崩溃或没有任何stacktrace的崩溃都消失了


(一些额外的调查显示,许多反射错误没有找到合适的方法,可能是因为Android SDK不匹配)

您是否将
arm64-v8a
作为项目中的目标体系结构?不,只有armeabi、armeabi-v7a、x86,这一直有效。这是否会突然发生?请发布完整的异常堆栈跟踪,我们需要更多信息来找到原因。您可以阅读以下内容:我也找到了该主题,但无法将其用于libmonosgen-2.0。除此之外,我还怀疑这是否会给我提供有意义的完整数据,因为这会给我带来mono或android原生编码,而我用C#做所有的事情。我似乎已经删除了完整的日志,一旦我遇到相同的崩溃,我将发布日志。PS:不要期待更多的android backtrace然后#00或任何.Net stacktrace。因为这是整个问题的症结所在。是MvvmCross中的反射错误还是应用程序中您的部分中的反射错误?
09-11 16:21:54.470 I/DEBUG ( 164): ABI: 'arm' 
09-11 16:21:54.471 I/DEBUG ( 164): pid: 9467, tid: 9467, name: myApp 
09-11 16:21:54.471 I/DEBUG ( 164): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xf0b9bc14 
09-11 16:21:54.499 I/DEBUG ( 164): r0 f0b9bbf4 r1 ba1e67c8 r2 00000049 r3 b9171668 
09-11 16:21:54.499 I/DEBUG ( 164): r4 ba1e67c8 r5 00000000 r6 a5085d18 r7 b9bbf529 
09-11 16:21:54.499 I/DEBUG ( 164): r8 ba1e67c8 r9 b9171668 sl b9bb52ac fp bed8f9d8 
09-11 16:21:54.499 I/DEBUG ( 164): ip f0b9bbf4 sp bed8f9c0 lr a516d034 pc a5085d20 cpsr a00f0110 
09-11 16:21:54.503 I/DEBUG ( 164):  
09-11 16:21:54.503 I/DEBUG ( 164): backtrace: 
09-11 16:21:54.503 I/DEBUG ( 164): #00 pc 001a8d20 /data/app/myApp/lib/arm/libmonosgen-2.0.so