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'

person Szymon Klimaszewski    schedule 13.09.2016    source источник
comment
Ироничный. Добавление зависимости от сбоя вызывает сбой   -  person OneCricketeer    schedule 14.09.2016
comment
Мы только что столкнулись с этой проблемой на устройствах с версией 9.6.80 сервисов Google Play. Пожалуйста, проверьте, работает ли на вашем устройстве та же версия. Нам пришлось обновить все наши приложения (множество пользователей) и удалить отчеты о сбоях.   -  person xcvr    schedule 14.09.2016
comment
Точно, у меня тоже GPS 9.6.80   -  person Szymon Klimaszewski    schedule 14.09.2016
comment
Фу. Очень пахнет регрессом. Завтра мы потратим на это больше времени. Спасибо за этот пост!   -  person xcvr    schedule 14.09.2016
comment
firebaser здесь Спасибо за отчет. Мы выясняем, что могло вызвать этот регресс. @bonnyz опубликовал обходной путь. Я опубликую здесь, когда будет обновление или правильное исправление.   -  person Frank van Puffelen    schedule 14.09.2016
comment
@FrankvanPuffelen Боюсь, это регресс в сервисах Google Play, потому что он ведет себя так же, даже если вы понизите версию до 9.2.1 в deps.   -  person Szymon Klimaszewski    schedule 14.09.2016
comment
@SzymonKlimaszewski Это действительно предпосылка, в которой мы работаем.   -  person Frank van Puffelen    schedule 14.09.2016


Ответы (4)


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

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

    скомпилировать 'com.google.firebase:firebase-crash:9.x.x'

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


ОБНОВЛЕНИЕ 16 сентября:

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

person bonnyz    schedule 14.09.2016
comment
Я думаю, что мы больше ничего не можем с этим поделать. - person Szymon Klimaszewski; 14.09.2016
comment
firebaser здесь Спасибо за отчет. Мы выясняем, что могло вызвать этот регресс. Ответ @ bonnyz - допустимый обходной путь. Я опубликую здесь, когда будет обновление или правильное исправление. Обновление (14 сентября 2016 г., 12:54, тихоокеанское время): мы определили причину проблемы и работаем над ее устранением. Обходной путь остается в силе. - person Frank van Puffelen; 14.09.2016
comment
Будете ли вы выпускать его как исправление? Если нет, то какова ожидаемая дата выпуска? - person Szymon Klimaszewski; 14.09.2016
comment
@SzymonKlimaszewski Проблема в 9.6.80 была выявлена ​​и будет исправлена ​​в 9.6.83. Будем держать вас в курсе. - person Doug Stevenson; 15.09.2016
comment
Статус можно отслеживать здесь: status.firebase.google. .com/инцидент/ - person Doug Stevenson; 15.09.2016
comment
Я удалил компиляцию «com.google.firebase:firebase-crash:9.x.x» из моего build.gradle. Но все равно сбой. Google говорит, что сбой Firebase по умолчанию включен в подключаемый модуль: «com.google.gms.google-services». Есть ли способ полностью удалить сбой firebase - person Prabhu M; 15.09.2016
comment
Это неправда. Задайте для этого отдельный вопрос - person Szymon Klimaszewski; 15.09.2016
comment
@SzymonKlimaszewski, проверьте этот stackoverflow .com/questions/39505604/ - person Prabhu M; 15.09.2016
comment
Я не использую firebase-crash в своем приложении, но ошибка все равно возникает. - person Alexander.Shtanko; 15.09.2016
comment
@Alexander.Shtanko см. принятый ответ здесь отключить отчеты о сбоях firebase по умолчанию"> stackoverflow.com/questions/39505604/ - person Prabhu M; 16.09.2016
comment
@FrankvanPuffelen Я столкнулся с той же проблемой с игровыми сервисами версии 9.4.0 и прокомментировал сбой firebase, сработало. Значит, проблема может быть и в версии 9.4.0? - person Vinil Narang; 16.09.2016
comment
Когда это будет исправлено? Я знаю, что Firebase Crash — это бета-версия, но это просто ужасно. - person clocksmith; 22.09.2016
comment
Снова возникла та же проблема с v11.0.2. :( - person Kamran Ahmed; 18.09.2017

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

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

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

}

person Ram Suthakar    schedule 15.09.2016

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

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

java.lang.RuntimeException: невозможно создать экземпляр приемника

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

person Harish Bharadwaj    schedule 20.09.2016
comment
Это странно. Это работает, когда вы отключаете мибификацию? Возможно, они забыли обновить конфигурацию Proguard, или у вас возникла проблема. - person Szymon Klimaszewski; 20.09.2016
comment
Да. Также отключен proguard. - person Harish Bharadwaj; 20.09.2016

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

Мы решили 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)

person longi    schedule 17.10.2017