MessagingAnalytics中的Android Firebase崩溃

问题描述 投票:1回答:1

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崩溃我们的应用程序?

android firebase crash firebase-cloud-messaging
1个回答
0
投票

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

  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
© www.soinside.com 2019 - 2024. All rights reserved.