FirebaseApp с именем не существует

После перехода на Firebase Cloud Messaging. При открытии моего приложения он вылетает и выдает сообщение об ошибке java.lang.IllegalStateException: FirebaseApp with name [DEFAULT] doesn't exist. Я уже поставил свой новый google-services.json и обновил свой SDK.

Вот моя MainActivity

 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //Check Google play service GoogleApiAvailability googleAPI = GoogleApiAvailability.getInstance(); int resultCode = googleAPI.isGooglePlayServicesAvailable(this); if (resultCode != ConnectionResult.SUCCESS) { if (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) { GooglePlayServicesUtil.getErrorDialog(resultCode, this, PLAY_SERVICES_RESOLUTION_REQUEST).show(); } else { Log.e(LOG_TAG, "This device is not supported."); finish(); } } Log.i(TAG, "InstanceID token: " + FirebaseInstanceId.getInstance().getToken()); } } 

Повторите двойную проверку, вы добавили

 apply plugin: 'com.google.gms.google-services' 

В нижней части файла градиента приложения, а затем очистить и перестроить проект

Не уверен, если это актуально здесь. Но есть и другой сценарий, когда это может произойти.


Если ваше приложение имеет сервис (с другим процессом) и вы создаете свой собственный класс Application , служба и приложение переднего плана будут использовать тот же класс приложения ( не тот же самый экземпляр ) для инициализации. Теперь, когда я использую com.google.firebase:firebase-crash dependancy для обработки сбоев, он создает фоновое обслуживание your.app.packagename:background_crash . По какой-то причине это вызывало сбои в моем приложении. В частности, потому что в моем классе приложения я звонил,

 FirebaseDatabase.getInstance().setPersistenceEnabled(true); 

Я предполагаю, что фоновая служба при запуске с нашим классом Application, так или иначе Firebase не инициализируется. Чтобы исправить это, я сделал

 if (!FirebaseApp.getApps(this).isEmpty()) FirebaseDatabase.getInstance().setPersistenceEnabled(true); 

У меня была схожая проблема, и для меня это была ошибка / проблема с явным слиянием. Я обнаружил, что FirebaseInitProvider не был добавлен в файл окончательного манифеста из-за tools:node="replace" в файле манифеста приложения. Итак, попробуйте удалить этот тег xml, и FirebaseInitProvider будет введена, а Firebase может быть правильно инициализирована.

Файл build.gradle:

 buildscript { repositories { jcenter() mavenLocal() } dependencies { classpath 'com.android.tools.build:gradle:2.1.2' classpath 'com.google.gms:google-services:3.0.0' } } allprojects { repositories { jcenter() mavenLocal() } } 

\ App \ build.gradle файл:

 apply plugin: 'com.android.application' android { .. } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) .. compile 'com.google.firebase:firebase-core:9.0.2' compile 'com.google.firebase:firebase-messaging:9.0.2' } apply plugin: 'com.google.gms.google-services' 

@jmodrako ответ решил мою проблему … tools:node="replace" to tools:node="merge"

Объясняется … на AndroidManifest.xml

Из

 <application ... tools:node="replace"> 

к

 <application ... tools:node="merge"> 

Объединить проблемы с библиотечными темами? Проблемы сборки решаются с помощью tools:replace="android:theme"

Кредиты на https://stackoverflow.com/a/38060272/2765087

Перенесите инициализацию firebase внутри класса onCreate of Application. Кроме того, если вы активировали автономное сохранение, FirebaseDatabase.getInstance (). SetPersistenceEnabled (true) должен появиться перед любыми другими инициализациями.

Android Studio

  1. Применить плагин: «com.google.gms.google-services» (build.gradle – уровень модуля)
  2. Меню ~> Построить ~> CleanProject

Работает для меня нормально.

В вашей зависимости просто добавьте зависимости {compile fileTree (dir: 'libs', include: ['* .jar']) .. compile 'com.google.firebase: firebase-core: 9.0.2' compile 'com.google. Firebase: firebase-messaging: 9.0.2 '}

Применить плагин: 'com.google.gms.google-services'

Зарегистрируйте свое приложение в Firebase и скопируйте google-services.json в свой корневой проект.

Применить classpath 'com.google.gms: google-services: 3.1.0' к вам root build.gradle.

Примените плагин «com.google.gms.google-services» к графе проекта.