Firebase Crash производит ANR во время запуска

Недавно я получил обратную связь, а также смог легко воспроизвести его на своем Nexus 5 с очищенными данными приложения. Просто, добавляя компиляцию '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'

Ответ 1

Проблема была внедрена с Google Play Services 9.6.80 (в настоящее время в развертывании) и затрагивает все приложения, используя отчеты Firebase Crash (несмотря на версию, включенную в ваше приложение).

  • Временное решение: отключить Firebase Crash, удалив следующую запись из build.gradle:

    compile 'com.google.firebase: firebase-crash: 9.x.x'

  • Долгосрочное решение: подождите, пока Google выпустит фиксированную версию GPS, прежде чем снова включить Firebase Crash.


ОБНОВЛЕНИЕ 09/16:

Google запускает фиксированную версию Служб Google Play (9.6.83), которая устраняет проблему с Firebase Crash.

Ответ 2

Отключить отчет о сбоях Google Firebase Analytics, используйте приведенный ниже код внутри файла app.gradle. Надеемся, что это поможет вам

конфигурации {

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

}

Ответ 3

9.6.83 все еще дает другую краш-ошибку Наше приложение при нажатии на бета-версию Play Store и при установке на устройствах вылетает при первом запуске. Впоследствии он работает, но мы не можем настаивать на том, чтобы не понять проблему.

Вот отчет о сбое ANR

java.lang.RuntimeException: не удается создать экземпляр com.google.android.gms.analytics.CampaignTrackingReceiver: java.lang.ClassNotFoundException: не нашел класс "com.google.android.gms.analytics.CampaignTrackingReceiver"

Изменить: нам пришлось добавить компиляцию 'com.google.android.gms: play-services-analytics: 9.4.0' явно, и первый запуск программы был разрешен. Но я не уверен, что это было исправление, поскольку мы вообще не используем библиотеку. Возможно, Playstore исправил свою ошибку для всех apks?

Ответ 4

Только для записи:

Мы решили DynamiteModulesC NPE и Uncaught exception in Firebase runloop (3.0.0) выполнить удаление следующей строки

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

Описание API:

Если установлено значение true, это означает, что Firebase должен закрыть базу данных когда приложение находится в фоновом режиме. Отключено по умолчанию.

(Возможно, мы упустили некоторые конфигурации для правильного использования этой функции, но приложение работает так, как ожидается, после того, как не включит ResourceManagment)