我的最新版本崩溃的速度约为每1000个设备99个,比之前的版本要高得多。 libmonosgen中有两种新的崩溃方式:
集群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中。
问题:
有人知道pid:0和tid:0是什么意思吗?这是否意味着这些崩溃是在加载应用程序代码之前发生的,还是无关紧要的?
如果不是在应用程序启动时,我能以某种方式找出崩溃发生多长时间后的情况?甚至更好,我可以将崩溃与应用程序生成的会话日志相关联吗?
是否可以配置Play或App来收集更好的痕迹?
下面的配置详细信息
版本信息
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%,而不会为所有用户造成崩溃峰值。手指交叉:)
[经过大量研究(请参阅问题的底部),我决定从应用程序中删除all更改,然后开始将它们逐个再次抛出。幸运的是,就像我完成所有变更(从2个月的工作)的详细梳理一样,用户发布了1星评价,并附有详细的复制说明!。
因此,问题的答案“如何在没有堆栈跟踪的情况下调查崩溃”:
您必须找到一个复制品,(在生产版本中)找到一种方法是等待用户告诉您。
回答其他在线问题:
有人知道pid:0和tid:0是什么意思吗?这是否意味着这些在加载应用程序代码之前发生崩溃,或者那个无关的?
如果不是在应用启动时,我能以某种方式找出多长时间后崩溃发生了吗?甚至更好,我可以将崩溃与应用相关联吗生成的会话日志?
是否可以通过配置Play或App来更好地收集痕迹?
详细信息/实际崩溃的根本原因:
事实证明,自上次更新以来,我最喜欢的PropertyChanged.Fody和Xamarin Forms的行为已发生变化,以至于生成的PropertyChanged事件比过去更多(IE,即使该值是指定的值等于原始值,则将触发“属性更改”事件。]
在我更有趣的视图模型之一中(该模型基于输入控件中的文本值进行自动单位转换),当与自定义控件结合使用时,将导致无限递归。 (意味着该值将发生变化,这将触发一个propertychanged事件,这将更新控件,该控件会将值分配给视图模型,这将触发propertychanged,等等。)
[我一旦进行了复制,调查和解决问题就变得微不足道;通过使用[DoNotNotify]
装饰其中一个属性,我得以解决此问题