MessagingAnalytics中的Android Firebase崩溃

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MessagingAnalytics中的Android Firebase崩溃相关的知识,希望对你有一定的参考价值。

Exception

我们发现Google Play中有很多与Firebase相关的崩溃事件。

异常发生在两种方法中:

  • com.google.firebase.messaging.MessagingAnalytics.logNotificationDismiss
  • com.google.firebase.messaging.MessagingAnalytics.logNotificationReceived

堆栈跟踪示例:

at com.google.firebase.FirebaseApp.getInstance(com.google.firebase:firebase-common@@16.0.1:219)
  at com.google.firebase.messaging.MessagingAnalytics.zza (Unknown Source)
  at com.google.firebase.messaging.MessagingAnalytics.logNotificationReceived (Unknown Source)
  at com.google.firebase.messaging.FirebaseMessagingService.zzd (Unknown Source)
  at com.google.firebase.iid.zzc.run (Unknown Source)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1133)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
  at com.google.android.gms.common.util.concurrent.zza.run (Unknown Source)
  at java.lang.Thread.run (Thread.java:762)

Investigation

我们做了调查,发现原因:

  • Firebase初始化时会发生异常。
  • 当设备具有过时版本的Google Play服务时,可能会发生这种情况。
  • 我们已经设法通过将所有Firebase调用包装到try / catch块来解决应用程序代码中的此问题。
  • 但是,这对logNotificationDismisslogNotificationReceived没有帮助,因为我们无法控制此代码。

Google Support

我们已向Firebase小组通知了该问题,并花了一周的时间与支持人员交谈。然而,他们告诉我们,在我们发送再现崩溃的构建之前,他们甚至不会查看问题。我们对该问题是特定于设备的解释没有帮助。

Question

我们可以做些什么来阻止com.google.firebase.messaging.MessagingAnalytics崩溃我们的应用程序?

答案

我们设法解决了这个问题。

  1. 提取AAR com.google.firebase.firebase-messaging-X.X.X.aar
  2. 提取classes.jar
  3. 反编译MessagingAnalytics类
  4. 将try catch添加到logNotificationDismiss和logNotificationReceived
  5. 将Messaging Analytics组合起来
  6. 打包到classes.jar回来
  7. 打包回AAR
  8. 替换项目中的AAR

以上是关于MessagingAnalytics中的Android Firebase崩溃的主要内容,如果未能解决你的问题,请参考以下文章

如何解决这个错误。 com.google.android.gms.tasks.task executors$zza 无法转换为 android.app.activity。我是 Java 和 Andro

java.lang.RuntimeException: Unable to start activity ComponentInfo{XXX}: Error inflating class andro

Java.lang.IllegalStateException:应用程序PagerAdapter更改了适配器的内容而不调用PagerAdapter#notifyDataSetChanged andro

转How to Start Intel Hardware-assisted Virtualization (hypervisor) on Linux to Speed-up Intel Andro

Android中的相机方向问题

TableRow 中的居中和拉伸按钮