我的最新版本的崩溃速度是每1000个设备约99个崩溃-大大高于之前的版本。 libmonosgen中的新崩溃有2种样式:
集群1:libmonosgen-2.0.so
signal 11 (SIGSEGV), code 2 (SEGV_ACCERR)
libmonosgen-2.0.so
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> com.dailybits.foodjournal <<<
backtrace:
#00 pc 0000000000192304 /data/app/com.dailybits.foodjournal-KapbLS3Zx20G2S79yI3CTw==/lib/arm/libmonosgen-2.0.so
集群2:libmonosgen-2.0.so(mono_class_get_flags)
signal 11 (SIGSEGV), code 2 (SEGV_ACCERR)
mono_class_get_flags
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> com.dailybits.foodjournal <<<
backtrace:
#00 pc 000000000014f310 /data/app/com.dailybits.foodjournal-rwLqwfyotHI-Ulk481Wk8g==/lib/arm64/libmonosgen-2.0.so (mono_class_get_flags)
发行前的报告显示为绿色,并且App Center没有这些崩溃,它们仅显示在Google Play中。
问题:
下面的配置详细信息
(两个构建选项似乎都导致相同的问题)
版本信息
Microsoft Visual Studio Professional 2019
Version 16.4.2
VisualStudio.16.Release/16.4.2+29613.14
Microsoft .NET Framework
Version 4.8.03752
Xamarin 16.4.000.307 (d16-4@e031886)
Visual Studio extension to enable development for Xamarin.iOS and Xamarin.Android.
Xamarin.Android SDK 10.1.1.0 (d16-4/f2c9364)
Xamarin.Android Reference Assemblies and MSBuild support.
Mono: bef1e63
Java.Interop: xamarin/java.interop/d16-4@c4e569f
ProGuard: xamarin/proguard/master@905836d
SQLite: xamarin/sqlite/3.28.0@46204c4
Xamarin.Android Tools: xamarin/xamarin-android-tools/master@9f4ed4b
编辑2/17/2020
迄今为止我的一些调查:
我决定用细齿梳理所有更改,还原所有程序包更新,然后一个接一个地重新执行,直到发行版开始崩溃。
如果我不走运,将需要几个星期,但应该可以找出导致崩溃的原因。它还应该允许我将新功能发布到100%,而不会给所有用户造成崩溃高峰。手指交叉:)
最佳答案
经过大量研究(请参阅问题底部),我决定从应用程序中删除所有更改,并开始将它们逐一分发。幸运的是,就像我完成所有变更(从2个月的工作)的详细梳理一样,用户发布了1星评价,并附有详细的复制说明!
因此,问题“如何在没有堆栈跟踪的情况下调查崩溃”的答案是:
您必须找到一个副本,找到发布版本的一种方法是等待用户告诉您。
回答其他在线问题:
在加载应用程序代码之前发生崩溃,或者
那无关的?
崩溃发生了吗?甚至更好,我可以将崩溃与应用相关联
生成的 session 日志?
痕迹?
详细信息/实际崩溃的根本原因:
事实证明,自上次更新以来,我最喜欢的PropertyChanged.Fody和Xamarin Forms的行为已发生变化,以至于生成的PropertyChanged事件比过去更多(IE,即使分配的值是等于原始值,现在会触发“属性更改”事件)。
在我更有趣的一种 View 模型中(该模型基于输入控件中的文本值进行自动单位转换),当与自定义控件结合使用时,这将导致无限递归。 (意味着该值将发生变化,这将触发一个propertychanged事件,该事件将更新控件,该控件会将该值分配给 View 模型,这将触发propertychanged等)。
一旦进行了复制,调查和解决问题就变得微不足道了。
我可以通过使用[DoNotNotify]装饰其中一个属性来解决此问题
关于android - 如何调查Xamarin/libmonosgen-2.0.so native 崩溃?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60213460/