Firebase崩溃在启动期间产生ANR

最近我得到了反馈意见,我也能够在Nexus 5上轻松地复制它,并清除应用程序数据。 简单地说,当仅将编译“com.google.firebase:firebase-crash:9.4.0”添加到项目依赖项时,我得到以下exception:

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' 

Solutions Collecting From Web of "Firebase崩溃在启动期间产生ANR"

Google Play服务9.6.80 (目前正在推出)引入了这个问题,并影响了所有使用Firebase Crash报告的应用(尽pipe应用捆绑了该版本)。

  • 临时解决scheme:通过从build.gradle中删除以下条目来禁用Firebase崩溃

    编译“com.google.firebase:firebase-crash:9.x.x”

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


更新09/16:

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

禁用Firebase Analytics崩溃报告,在app.gradle文件中使用下面的代码。希望这会帮助你

configuration{

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

}

9.6.83仍然给出了一个不同的anr崩溃我们的应用程序,当推到Play商店testing版和安装在设备上第一次发射崩溃。 随后,它的工作,但我们不能不理解的问题推动。

这是ANR崩溃报告

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

编辑:我们必须明确地添加编译“com.google.android.gms:play-services-analytics:9.4.0”并且第一次启动anr得到解决。 但我不确定这是否是修复,因为我们根本不使用这个库。 也许Playstore修正了他们的bug到所有apks?

只是为了logging:

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

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

API说明:

如果设置为true,则表示Firebase在应用程序处于后台时应自动closures数据库连接。 默认情况下禁用。

(可能是,我们错过了正确使用这个function的一些configuration,但是App没有启用ResourceManagment之后按照预期工作)