21

最近我收到了反馈,而且我能够在我的 Nexus 5 上轻松重现它,并清除应用数据。简单地说,当仅将compile 'com.google.firebase:firebase-crash:9.4.0'添加到项目依赖项时,我得到以下异常:

09-14 00:47:54.899 3129-3129/com.szyk.myheart E/FirebaseCrash: Failed to initialize crash reporting
                                                           java.lang.NullPointerException: Attempt to invoke interface method 'java.util.Iterator java.util.List.iterator()' on a null object reference
                                                               at bol.<init>(:com.google.android.gms.DynamiteModulesC:3201)
                                                               at com.google.firebase.crash.internal.api.FirebaseCrashApiImpl.init(:com.google.android.gms.DynamiteModulesC:67)
                                                               at bnu.onTransact(:com.google.android.gms.DynamiteModulesC:60)
                                                               at android.os.Binder.transact(Binder.java:387)
                                                               at com.google.firebase.crash.internal.zzd$zza$zza.zza(Unknown Source)
                                                               at com.google.firebase.crash.FirebaseCrash.<init>(Unknown Source)
                                                               at com.google.firebase.crash.FirebaseCrash.getInstance(Unknown Source)
                                                               at java.lang.reflect.Method.invoke(Native Method)
                                                               at com.google.firebase.FirebaseApp.zza(Unknown Source)
                                                               at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)
                                                               at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)
                                                               at com.google.firebase.FirebaseApp.zzek(Unknown Source)
                                                               at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source)
                                                               at android.content.ContentProvider.attachInfo(ContentProvider.java:1748)
                                                               at android.content.ContentProvider.attachInfo(ContentProvider.java:1723)
                                                               at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
                                                               at android.app.ActivityThread.installProvider(ActivityThread.java:5153)
                                                               at android.app.ActivityThread.installContentProviders(ActivityThread.java:4748)
                                                               at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4688)
                                                               at android.app.ActivityThread.-wrap1(ActivityThread.java)
                                                               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405)
                                                               at android.os.Handler.dispatchMessage(Handler.java:102)
                                                               at android.os.Looper.loop(Looper.java:148)
                                                               at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                               at java.lang.reflect.Method.invoke(Native Method)
                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

这个问题更奇怪,因为一旦它会产生 ANR 并崩溃,它就会在下一次启动时起作用。

我的依赖:

compile 'com.google.firebase:firebase-core:9.4.0'
//not working  compile 'com.google.firebase:firebase-crash:9.4.0'
compile 'com.google.firebase:firebase-invites:9.4.0'
compile 'com.google.firebase:firebase-ads:9.4.0'

compile 'com.google.android.gms:play-services-auth:9.4.0'
compile 'com.google.android.gms:play-services-plus:9.4.0'
compile 'com.google.android.gms:play-services-drive:9.4.0'
4

4 回答 4

14

该问题已在Google Play 服务 9.6.80(目前正在推出)中引入,并影响使用Firebase 崩溃报告的所有应用(尽管您的应用中捆绑了版本)。

  • 临时解决方案:通过从 build.gradle 中删除以下条目来禁用 Firebase Crash :

    编译'com.google.firebase:firebase-crash:9.xx'

  • 长期解决方案:等待 Google 发布 GPS 的固定版本,然后再次启用Firebase Crash


更新 09/16:

Google 正在推出解决 Firebase 崩溃问题的固定版本的 Google Play 服务 ( 9.6.83 )。

于 2016-09-14T11:05:52.407 回答
1

禁用 Firebase Analytics 崩溃报告,在 app.gradle 文件中使用以下代码。希望这会对您有所帮助

配置{

  all*.exclude group: 'com.google.firebase', module: 'firebase-crash'

}

于 2016-09-15T15:22:46.733 回答
0

仅作记录:

我们通过删除以下行来解决DynamiteModulesC NPEandUncaught exception in Firebase runloop (3.0.0)

//remove this "feature" if you should use it
FirebaseApp.setAutomaticResourceManagmentEnabled(true)

接口说明:

如果设置为 true,则表明 Firebase 应在应用处于后台时自动关闭数据库连接。默认禁用。

(可能是我们错过了一些正确使用此功能的配置,但在未启用 ResourceManagment 后应用程序按预期工作)

于 2017-10-17T11:37:56.077 回答
0

9.6.83 仍然会出现不同的 anr 崩溃 我们的应用在推送到 Play 商店 Beta 时以及在设备上安装时在首次启动时崩溃。随后它起作用了,但我们不能在不了解问题的情况下推动生产。

这是 ANR 崩溃报告

java.lang.RuntimeException:无法实例化接收器 com.google.android.gms.analytics.CampaignTrackingReceiver:java.lang.ClassNotFoundException:找不到类“com.google.android.gms.analytics.CampaignTrackingReceiver”

编辑:我们必须明确添加 compile 'com.google.android.gms:play-services-analytics:9.4.0' 并且第一次启动 anr 得到了解决。但我不确定这是否是解决方法,因为我们根本不使用该库。也许 Playstore 修复了所有 apk 的错误?

于 2016-09-20T01:48:10.640 回答