Мы видим несколько исключений с сообщением Default FirebaseApp is not initialized in this process com.example.app. Make sure to call FirebaseApp.initializeApp(Context) first.
в нашем приложении для Android, в которое мы только что добавили Firebase Remote Config.
Трассировка стека выглядит следующим образом:
Fatal Exception: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.example.app. Make sure to call FirebaseApp.initializeApp(Context) first.
at com.google.firebase.FirebaseApp.getInstance(Unknown Source)
at com.google.firebase.remoteconfig.FirebaseRemoteConfig.getInstance(Unknown Source)
at com.example.app.fragments.SomeFragment.updateFooter(SourceFile:295)
at com.example.app.fragments.SomeFragment.onCreateView(SourceFile:205)
at android.support.v4.app.Fragment.performCreateView(SourceFile:2080)
at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1108)
at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1290)
at android.support.v4.app.BackStackRecord.run(SourceFile:801)
at android.support.v4.app.FragmentManagerImpl.execSingleAction(SourceFile:1638)
at android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(SourceFile:679)
at android.support.v4.app.FragmentPagerAdapter.finishUpdate(SourceFile:143)
at android.support.v4.view.ViewPager.populate(SourceFile:1240)
at android.support.v4.view.ViewPager.populate(SourceFile:1088)
at android.support.v4.view.ViewPager.setAdapter(SourceFile:542)
at com.example.app.SomeActivity.onSomeAsyncCallback(SourceFile:908)
at com.example.app.SomeDataRetriever.onAsyncHttpCompleted(SourceFile:72)
at com.example.app.io.AsyncHttp.onPostExecute(SourceFile:141)
at com.example.app.io.AsyncHttp.onPostExecute(SourceFile:19)
at android.os.AsyncTask.finish(AsyncTask.java:679)
at android.os.AsyncTask.access$500(AsyncTask.java:180)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:696)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:150)
at android.app.ActivityThread.main(ActivityThread.java:5665)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:799)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:689)
Это версия 9.6.1, и мы также используем другие компоненты Firebase:
compile 'com.google.firebase:firebase-ads:9.6.1'
compile 'com.google.firebase:firebase-config:9.6.1'
compile 'com.google.firebase:firebase-invites:9.6.1'
compile "com.google.firebase:firebase-messaging:9.6.1"
Как я вижу из документации и Javadoc, нам не нужно было выполнять какую-либо ручную инициализацию в нашем случае.
Исключение происходит на Android 4-6 на различных устройствах.
Редактировать:
Я вижу, что этот вопрос привлекает немного внимания. Я думаю, что это объяснение может быть интересным для некоторых из вас: https://firebase.googleblog.com/2016/12/how-does-firebase-initialize-on-android.html
источник
Ответы:
У меня была такая же проблема некоторое время назад.
Вы пытаетесь получить экземпляр Firebase без его инициализации. Пожалуйста, добавьте эту строку кода, прежде чем пытаться получить экземпляр Firebase:
источник
apply plugin: 'com.google.gms.google-services'
Обязательно добавьте в свой корневой уровень build.gradle
Затем в файле Gradle уровня вашего модуля (обычно это app / build.gradle), добавьте строку «apply plugin» внизу файла, чтобы включить плагин Gradle:
Как сказано в документации . У меня было исключение, как в вопросе выше, когда я забыл добавить это в мои файлы Gradle.
источник
Кажется, что
google-services:4.1.0
есть проблема. Либо понизить его доили обновить его до
Надеюсь, поможет
источник
classpath 'com.google.gms:google-services:4.1.0'
снова. YMMV.Мне не хватало строки ниже в моем файле app / build.gradle
и один раз очистить проект и запустить снова. Это исправило это для меня.
источник
есть проблема. вместо этого используйте:
источник
Прежде всего вам нужно добавить com.google.gms: google-services: xxx на корневом уровне build.gradle
}
После этого вам нужно применить плагин: «com.google.gms.google-services» в app / build.gradle
и если проблема все еще возникает, вам нужно добавить
как раз перед тем как звонить
источник
После обновления различных зависимостей я получил ошибку Crashlytics во время компиляции: «Crashlytics обнаружил недопустимый ключ API: null. Проверьте плагин Crashlytics, чтобы убедиться, что приложение было успешно добавлено! Свяжитесь с support@fabric.io для получения помощи. ' Единственный неавтоматический ответ, который я получил от неоднократных попыток support@fabric.io, на которые вас направляет ошибка, заключался в том, что Fabric и Crashlytics - это отдельные команды, поэтому они не могли мне помочь. Я избегал внедрения дополнительного слоя Fabric в Crashlytics и не смог получить новый ключ с сайта Fabric или даже заставить сайт узнать меня. Пытаясь обойти это, просто удалив Crashlytics из моего кода, я получил «По умолчанию FirebaseApp не инициализируется в этом процессе com.example.app. Обязательно вызовите FirebaseApp.initializeApp (Context) первым 'сбой в процессе.
Мне никогда не приходилось добавлять строку инициализации 'FirebaseApp.initializeApp (this)', и фактически она была закомментирована. В документации даже упоминается, что это не нужно, если только использовать Firebase для одного действия. Добавление не имело никакого значения, все еще получил ошибку убийства пробега.
Оказывается, что причиной новых непонятных ошибок была обновленная зависимость google-services. На данный момент у меня нет времени проводить больше дней, пытаясь исправить ошибки ружья, вызванные новой зависимостью, поэтому, пока кто-то не найдет решения, я буду придерживаться старой версии. Помимо нечетного сбоя при инициализации, новая версия может принуждать пользователей Fabric к Crashlytics. Для этого пользователям также приходится возвращаться к старой версии зависимости: Crashlytics обнаружил недопустимый ключ API: null. после обновления com.google.gms: google-services: 4.1.0
РЕДАКТИРОВАТЬ 17/17/18: после обновления следующих зависимостей снова
Я получил немедленный сбой при попытке установки с «xxx неожиданно закрылся», как, например, когда я пытался обновить зависимость google-services. Покопавшись в журнале, я нашел ссылку, указывающую мне добавить это в манифест
Это новое и не упоминается в инструкциях по настройке и вставке здесь https://firebase.google.com/docs/android/setup и здесь https://developers.google.com/admob/android/interstitial .
Раньше мне приходилось иметь дело только с одним идентификатором, связанным с рекламой, для моего приложения, INTERSTITIAL_UNIT_ID. Теперь нужно разобраться с двумя. Помимо вышеупомянутого добавления, документация предписывает добавить здесь ADMOB_APP_ID (тот же номер, который вы связываете с ads.APPLICATION_ID в новом коде манифеста)
Идентификаторы INTERSTITIAL_UNIT_ID и ADMOB_APP_ID можно найти в консоли Google AdMob. Мое игровое приложение перестало показывать рекламу при моем первом обновлении зависимостей firebase и до сих пор не показывает рекламу, выдав код ошибки 0 в
Даже после всего этого добавленного беспорядка я все еще не могу обновить зависимость google-services без ошибки запуска инициализации. Я ожидаю, что застряну в google-services: 4.0.1 на некоторое время.
РЕДАКТИРОВАТЬ 24/24/18: из mobileadssdk-advisor+support@google.com после нескольких недель переписки о том, что реклама не показывается после обновлений:
«Спасибо за обмен журналами устройства. Из журналов это выглядит как существующая проблема, и она находится в нашем списке приоритетов, и наша команда работает над исправлением, и это происходит только на устройствах Android O и P ».
Только устройства O и P? Это две последние версии, которые вышли 25 сентября 2017 года.
источник
apply plugin: 'com.google.gms.google-services'
в свой build.gradle (с google-services: 4.1.0)Как упомянуто @PSIXO в комментарии, это может быть проблема с зависимой версией google-сервисов. Для меня меняется,
в
сработало. Может быть какая-то проблема с версией 4.1.0. Поскольку я потратил много времени на это, я подумал написать это как ответ.
источник
Если вы используете FirebaseUI , нет необходимости в
FirebaseApp.initializeApp(this);
в коде в соответствии образца .Обязательно добавьте в свой корневой уровень build.gradle:
Затем на уровне вашего модуля Gradle файл:
Вот и все. Больше не нужно.
источник
Вам нужно добавить зависимость buildscript Firebase Gradle в build.gradle (уровень проекта)
и добавьте плагин Firebase для Gradle в app / build.gradle
Источник: Android Studio Assistant
источник
Другое возможное решение - попробуйте другую Android Studio, если вы используете несколько бета-версий. Помог мне. Новая Android Studio просто не добавила Firebase должным образом. В моем случае 3.3preview
После еще одного исследования я обнаружил, что проблема в том, что новая Android-студия начинает проект с более новой версией Служб Google, и похоже, что это была первоначальная проблема. Как @Ammar Bukhari предположил, что это изменение помогло:
classpath 'com.google.gms: google-services: 4.1.0' -> classpath 'com.google.gms: google-services: 4.0.0'
источник
В моем случае подключаемый модуль служб Google не создавал требуемый
values.xml
файл изgoogle-services.json
файла. Библиотека Firebase использует этот сгенерированный файл значений для своей инициализации, и похоже, что она не выдает ошибку, если файл значений не может быть найден. Убедитесь, что файл значений существует в следующем месте и заполнен соответствующими строками из вашегоgoogle-sevices.json
файла:и / или
Подробнее см .: https://developers.google.com/android/guides/google-services-plugin.
Мой конкретный случай был вызван использованием версии инструментов Gradle, которая была слишком продвинутой для той версии Android Studio, на которой я работал (т.е. убедитесь, что вы используете инструменты ранга v3.2.X-YYY с Android Studio v3.2).
источник
Нам не нужно
FirebaseApp.initializeApp(this);
никуда звонить вручную. и мы не должны тоже.Я только столкнулся с той же самой проблемой об этом и получил неожиданное и странное решение.
Из этого ответа:
Я удалил,
tools:node="replace"
и это работает как шарм.источник
Я предполагаю, что есть проблемы совместимости с версией google-сервисов и версий firebase.
Я изменил в файле build.gradle проекта, зависимость
classpath 'com.google.gms: google-services: 4.1.0' до 4.2.0
а затем обновил зависимости модуля build.gradle:
реализация "com.google.firebase: база данных firebase: 16.0.6"
реализация "com.google.firebase: firebase-core: 16.0.7"
Все работает как шарм, нет необходимости вводить FirebaseApp.initializeApp (это);
источник
Причиной этого является com.google.gms: версия google-services . Когда я использовал 4.1.0 , я столкнулся с той же ошибкой. Тогда я понижаю версию. Перед
После
Надеюсь, это решит ошибку.
источник
Если вы недавно обновили Android Studio до версии 3.3.1, в которой есть проблема с зависимостями com.google.gms: google-services (ниже 4.2.0), обновите com.google.gms: google-services до 4.2.0.
источник
Одной из причин этого может быть забвение добавления
android.permission.INTERNET
разрешений вAndroidManifest.xml
источник
для меня это было обновление зависимостей com.google.gms: google-services внутри build.gradle до
источник
Хотя ручная инициализация Firebase с помощью
FirebaseApp.initializeApp(this);
делает ошибку исчезающей, она не устраняет основную причину, но некоторые странные проблемы не решаются, такие какcom.google.android.c2dm.permission.RECEIVE
разрешения, которое только для GCMИспользуйте более новый плагин Gradle (например, плагин Android 2.2.3 и Gradle 2.14.1) все исправлено. (Конечно, установка должна быть правильной согласно документации Firebase )
источник
Моя проблема не была решена с помощью этой процедуры
Поэтому я попробовал что-то еще, и теперь моя база данных была успешно инициализирована. Попробуйте добавить следующее в app module.gradle
источник
Нажмите Tools> Firebase, чтобы открыть окно Assistant.
Нажмите, чтобы развернуть одну из перечисленных функций (например, Google Analytics), затем щелкните предоставленную ссылку учебника (например, Журнал событий Google Analytics).
Нажмите кнопку Connect to Firebase, чтобы подключиться к Firebase и добавить необходимый код в ваше приложение.
https://firebase.google.com/docs/android/setup
источник
Установленная Firebase через Android Studio Tools ... Firebase ...
Я сделал установку с помощью встроенных инструментов из Android Studio (следуя последним документам от Firebase). Это установило основные зависимости, но когда я пытался подключиться к базе данных, это всегда давало мне ошибку, которую мне нужно было сначала вызвать инициализировать, даже если я был:
Я получал эту ошибку независимо от того, что я сделал.
Наконец, увидев комментарий в одном из других ответов, я изменил следующее в своем Gradle с версии 4.1.0 на:
Когда я сделал это, я наконец увидел ошибку, которая помогла мне:
Это проблема. Кажется, что версия 4.1.0 по какой-то причине не дает этой ошибки сборки - не говоря уже о том, что у вас отсутствует файл google-services.json. В моем приложении нет файла google-services.json, поэтому я вышел и добавил его.
Но поскольку это было обновление, в котором использовалась существующая база данных firsbase в реальном времени, мне никогда не приходилось создавать этот файл в прошлом. Я пошел в firebase, сгенерировал и добавил, и это решило проблему.
Вернулся на 4.1.0
Как только я обнаружил все это, я изменил переменную classpath обратно (на 4.1.0) и перестроил, и она снова вылетела с ошибкой, что она не была инициализирована.
Коренные проблемы
источник
используйте com.google.gms: google-services: 4.0.1 'вместо 4.1.0
источник
изменения
в
Работает для меня
источник
Следуя ответу @Gabriel Lidenor, инициализация приложения с контекстом не работает в моем случае. Что делать, если вы пытаетесь создать приложение firebase без google-service.json? Поэтому перед инициализацией любого количества приложений Firebase сначала необходимо выполнить инициализацию как;
источник
Придется инициализировать Firebase в функции onCreate класса приложения.
}
Код в файле манифеста: -
источник
Причина и решение: это распространенная ошибка, которую вы получите в большинстве случаев. Причина: когда вы интегрируете свой проект с Firebase, он добавляет зависимости
и classpath
classpath 'com.google.gms:google-services:4.1.0'
вам просто нужно обновить их
Вот как вы можете обновить
иди в Gradle Sript и сделай это
источник