愿君学长松,慎勿作桃李。这篇文章主要讲述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
没有帮助,因为我们无法控制此代码。
Question【MessagingAnalytics中的Android Firebase崩溃】我们可以做些什么来阻止
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
推荐阅读
- setOnClickListener导致APP崩溃
- react-native app在启动屏幕上崩溃
- android studio media player null对象引用
- Android AIDL(从java更改代码到kotlin之后项目崩溃)
- 单击注册会导致Android应用程序崩溃
- 你可能不知道Symfony2控制器的5种快捷方式
- 如何在Doctrine 2(独立或symfony 2和3)中轻松选择随机行
- 如何使用C#在WinForms应用程序中实现Sciter(轻量级HTML和CSS UI引擎)
- 如何在服务器的生产环境中轻松部署symfony2项目