Firebase 崩溃在启动期间产生 ANR
Firebase Crash produces ANR during launch
最近我收到了反馈,而且我能够在我的 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'
此问题已在 Google Play Services 9.6.80(目前正在推出)中引入,并影响所有使用 Firebase 的应用程序崩溃 报告(尽管您的应用中捆绑了版本)。
临时解决方案:通过从 build.gradle 中删除以下条目来禁用 Firebase 崩溃:
编译'com.google.firebase:firebase-crash:9.x.x'
长期解决方案:等待 Google 发布固定版本的 GPS,然后再启用 Firebase 崩溃 。
更新 09/16:
Google 正在推出 Google Play 服务 (9.6.83) 的固定版本,它解决了 Firebase 崩溃问题。
禁用 Firebase Analytics 崩溃报告,使用下面的代码 app.gradle file.Hope 这将帮助你
配置{
all*.exclude group: 'com.google.firebase', module: 'firebase-crash'
}
9.6.83 仍然给出不同的 anr 崩溃
我们的应用程序在推送到 Play Store Beta 并安装在设备上时会在首次启动时崩溃。随后它起作用了,但我们不能在不了解问题的情况下推动生产。
这是 ANR 崩溃报告
java.lang.RuntimeException: 无法实例化接收器 com.google.android.gms.analytics.CampaignTrackingReceiver: java.lang.ClassNotFoundException: 没有找到 class "com.google.android.gms.analytics.CampaignTrackingReceiver"
编辑:我们必须显式添加编译 'com.google.android.gms:play-services-analytics:9.4.0' 并且第一次启动时的问题得到解决。但我不确定这是否是解决方法,因为我们根本不使用该库。也许 Playstore 修复了所有 apk 的错误?
仅作记录:
我们通过删除下面的行
解决了DynamiteModulesC NPE
和Uncaught exception in Firebase runloop (3.0.0)
//remove this "feature" if you should use it
FirebaseApp.setAutomaticResourceManagmentEnabled(true)
API 描述:
If set to true it indicates that Firebase should close database
connections automatically when the app is in the background. Disabled
by default.
(可能是,我们错过了一些正确使用此功能的配置,但应用程序在未启用 ResourceManagment 后按预期工作)
最近我收到了反馈,而且我能够在我的 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'
此问题已在 Google Play Services 9.6.80(目前正在推出)中引入,并影响所有使用 Firebase 的应用程序崩溃 报告(尽管您的应用中捆绑了版本)。
临时解决方案:通过从 build.gradle 中删除以下条目来禁用 Firebase 崩溃:
编译'com.google.firebase:firebase-crash:9.x.x'
长期解决方案:等待 Google 发布固定版本的 GPS,然后再启用 Firebase 崩溃 。
更新 09/16:
Google 正在推出 Google Play 服务 (9.6.83) 的固定版本,它解决了 Firebase 崩溃问题。
禁用 Firebase Analytics 崩溃报告,使用下面的代码 app.gradle file.Hope 这将帮助你
配置{
all*.exclude group: 'com.google.firebase', module: 'firebase-crash'
}
9.6.83 仍然给出不同的 anr 崩溃 我们的应用程序在推送到 Play Store Beta 并安装在设备上时会在首次启动时崩溃。随后它起作用了,但我们不能在不了解问题的情况下推动生产。
这是 ANR 崩溃报告
java.lang.RuntimeException: 无法实例化接收器 com.google.android.gms.analytics.CampaignTrackingReceiver: java.lang.ClassNotFoundException: 没有找到 class "com.google.android.gms.analytics.CampaignTrackingReceiver"
编辑:我们必须显式添加编译 'com.google.android.gms:play-services-analytics:9.4.0' 并且第一次启动时的问题得到解决。但我不确定这是否是解决方法,因为我们根本不使用该库。也许 Playstore 修复了所有 apk 的错误?
仅作记录:
我们通过删除下面的行
解决了DynamiteModulesC NPE
和Uncaught exception in Firebase runloop (3.0.0)
//remove this "feature" if you should use it
FirebaseApp.setAutomaticResourceManagmentEnabled(true)
API 描述:
If set to true it indicates that Firebase should close database connections automatically when the app is in the background. Disabled by default.
(可能是,我们错过了一些正确使用此功能的配置,但应用程序在未启用 ResourceManagment 后按预期工作)