FirebaseApp с именем [по умолчанию] не существует
после миграции на Firebase Cloud Messaging.При открытии моего приложения он падает и выдает сообщение об ошибке java.lang.IllegalStateException: FirebaseApp with name [DEFAULT] doesn't exist. Я уже поставил свои новые google-сервисы.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());
}
}
9 ответов:
пожалуйста, сделайте двойную проверку, вы добавили
apply plugin: 'com.google.gms.google-services'в нижней части файла gradle приложения, а затем очистить и перестроить проект
не уверен, если это уместно здесь. Но есть и другой сценарий, когда эта авария может произойти.
если ваше приложение имеет службу (с другим процессом), и вы создаете свой собственный
Applicationкласс, служба и приложение переднего плана будут использовать один и тот же класс приложения (не один и тот же экземпляр) для инициализации. Теперь, когда я используюcom.google.firebase:firebase-crashзависимость для обработки сбоев, он создает фоновую службуyour.app.packagename:background_crash. По какой-то причине это вызывало сбои на моем приложение. В частности, потому что в моем классе приложений, я делал вызов, как,FirebaseDatabase.getInstance().setPersistenceEnabled(true);Я предполагаю, что фоновая служба при входе в наш класс приложений, каким-то образом Firebase не инициализируется. Чтобы исправить это, я сделал
if (!FirebaseApp.getApps(this).isEmpty()) FirebaseDatabase.getInstance().setPersistenceEnabled(true);
у меня была аналогичная проблема, и для меня это была ошибка/проблема с манифестным слиянием. Я узнал, что
FirebaseInitProviderне был введен в окончательный файл манифеста из-заtools:node="replace"в файле манифеста моего приложения. Итак, попробуйте удалить этот xml-тег иFirebaseInitProviderбудет введен и Firebase может быть инициализирован должным образом.
построить.файл 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"доtools:node="merge"объяснил... на AndroidManifest.xml
С
<application ... tools:node="replace">до
<application ... tools:node="merge">объединить проблемы с темами библиотека? Построить проблемы решаются с помощью
tools:replace="android:theme"
переместить инициализации опорного пункта внутри метод onCreate класса приложения. Кроме того, если вы включили автономное сохранение, FirebaseDatabase.getInstance ().setPersistenceEnabled (true) должен предшествовать любым другим инициализациям.
Android Studio
- применить плагин: 'com.гуглить.СБМ.google-services '(build.gradle-модульный слой)
- Меню~ > Сборка~ > CleanProject
работает для меня хорошо.
в вашей зависимости просто добавить зависимости { compile fileTree (реж.:' libs', include: ['*.банк']) .. компиляции в COM.гуглить.firebase:firebase-core: 9.0.2' компиляции в COM.гуглить.опорного пункта:военнослужащих-сообщений:9.0.2' }
применить плагин: 'com.гуглить.СБМ.google-services'
зарегистрируйте приложение в Firebase и скопируйте google-сервисы.JSON в корне проекта.
применить
classpath 'com.google.gms:google-services:3.1.0для вас корневой сборки.градля.применить
apply plugin: 'com.google.gms.google-servicesк вашему проекту gradle.
Comments