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)