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块来解决应用程序代码中的此问题。
- 但是,这对
logNotificationDismiss
和logNotificationReceived
没有帮助,因为我们无法控制此代码。
Google Support
我们已向Firebase小组通知了该问题,并花了一周的时间与支持人员交谈。然而,他们告诉我们,在我们发送再现崩溃的构建之前,他们甚至不会查看问题。我们对该问题是特定于设备的解释没有帮助。
Question
我们可以做些什么来阻止com.google.firebase.messaging.MessagingAnalytics
崩溃我们的应用程序?
我们设法解决了这个问题。
- 提取AAR com.google.firebase.firebase-messaging-X.X.X.aar
- 提取classes.jar
- 反编译MessagingAnalytics类
- 将try catch添加到logNotificationDismiss和logNotificationReceived
- 将Messaging Analytics组合起来
- 打包到classes.jar回来
- 打包回AAR
- 替换项目中的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