Firebase Crash производит ANR во время запуска
Недавно я получил отзыв, а также смог легко воспроизвести его на своем 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 ответа
Эта проблема была введена в Службах Google Play 9.6.80 (в настоящее время находится в стадии разработки) и касается всех приложений, использующих отчеты Firebase Crash (несмотря на версию, включенную в ваше приложение).
Временное решение: отключите Firebase Crash, удалив следующую запись из build.gradle:
скомпилируйте com.google.firebase:firebase-crash:9.x.x'
Долгосрочное решение: подождите, пока Google выпустит исправленную версию GPS, прежде чем снова включить Firebase Crash.
ОБНОВЛЕНИЕ 09/16:
Google выпускает фиксированную версию Сервисов Google Play ( 9.6.83), которая решает проблему с Firebase Crash.
Отключите Firebase Analytics Crash Reporting, используйте приведенный ниже код в файле app.gradle. Надеюсь, это поможет вам
конфигурации {
all*.exclude group: 'com.google.firebase', module: 'firebase-crash'
}
Только для записи:
Мы решили 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 не включен)
9.6.83 по-прежнему приводит к другому сбою anr. Наше приложение при нажатии на Play Store Beta и при установке на устройства аварийно завершает работу при первом запуске. Впоследствии это работает, но мы не можем подталкивать к продвижению без понимания проблемы.
Вот отчет о сбое 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' явно, и запуск anr впервые был решен. Но я не уверен, что это было исправлением, поскольку мы вообще не используем библиотеку. Может быть, Playstore исправил их ошибку во всех apks?