gpt4 book ai didi

xamarin - 如何处理 libmonosgen-2.0.so 崩溃?

转载 作者:行者123 更新时间:2023-12-02 03:00:58 30 4
gpt4 key购买 nike

一段时间以来,我在没有任何 .Net 堆栈跟踪的情况下随机崩溃,但有一个小的 Android 堆栈跟踪(只有 1 个堆栈项)指向 libmonosgen-2.0.so。崩溃是随机发生的;当应用程序在随机真实设备、调试或发布版本、后台线程或主线程等上没有做太多或做很多事情时。

有人知道如何解决这个问题吗???(这似乎是一个 mono/xamarin 问题,也许是一个已知问题?)

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

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

09-11 10:59:51.340 I/DEBUG ( 352): signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x3f800000 
09-11 10:59:51.350 I/DEBUG (352): r0 3f800000 r1 aef6b0a4 r2 00001867 r3 53677a96
09-11 10:59:51.350 I/DEBUG ( 352): r4 ae90ee68 r5 b489db70 r6 00000000 r7 3f800000
09-11 10:59:51.350 I/DEBUG ( 352): r8 b489db88 r9 161129ff sl bea85998 fp bea858e8
09-11 10:59:51.350 I/DEBUG ( 352): ip af1364f8 sp bea858d8 lr af06c5b8 pc aef6b0a4 cpsr 200f0010
09-11 10:59:51.350 I/DEBUG ( 352):
09-11 10:59:51.350 I/DEBUG ( 352): backtrace:
09-11 10:59:51.350 I/DEBUG ( 352): #00 pc 0017a0a4 /data/app/myApp/lib/arm/libmonosgen-2.0.so

崩溃 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 堆栈跟踪的崩溃。

crash log(搜索“fatal”,上面是 .Net 堆栈跟踪)

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

最佳答案

事实证明,MVVMCross 是使用比我构建应用程序时更高的 Android 版本构建/测试的。

在将我的应用程序构建版本与 MVVMCross 构建的版本对齐后,所有由 libmonosgen 或没有任何堆栈跟踪的奇怪崩溃都消失了。

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

关于xamarin - 如何处理 libmonosgen-2.0.so 崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46194059/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com