在我们的应用程序的分析中,我们注意到getIntent().getExtras()调用的崩溃次数增加.这是间歇性的,我们不能复制它.
崩溃有两种形式:
12 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.os.Parcel.dataSize()' on a null object reference 13 at android.os.BaseBundle.<init>(BaseBundle.java:126) 14 at android.os.Bundle.<init>(Bundle.java:102) 15 at android.content.Intent.getExtras(Intent.java:5685)
和
12 Caused by: java.lang.IllegalArgumentException 13 at android.os.Parcel.nativeAppendFrom(Native Method) 14 at android.os.Parcel.appendFrom(Parcel.java:458) 15 at android.os.BaseBundle.<init>(BaseBundle.java:126) 16 at android.os.Bundle.<init>(Bundle.java:102) 17 at android.content.Intent.getExtras(Intent.java:5685)
检索代码基本上如下onResume(){… getIntent().getExtras()…}.我们检查bundle是否为null,但在此之前它崩溃了.
我们确实传递了一个自定义的parcelable,但广泛的单元测试正在通过编组和解组.
这些崩溃的有趣统计数据是,它主要发生在Android 6上(72%的会话记录中95%的崩溃发生在那里).此外,三星设备上很少发生意外崩溃(73%的会话记录只有10%的崩溃发生在该制造商处).
这次崩溃对应用程序造成约0.15%的上升趋势(可能是因为API23上的数量或用户数量增加).
有人遇到类似的东西或已经有解决方案?