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());

}
}
538   9  

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"

кредиты https://stackoverflow.com/a/38060272/2765087

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

Android Studio

  1. применить плагин: 'com.гуглить.СБМ.google-services '(build.gradle-модульный слой)
  2. Меню~ > Сборка~ > 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

    Ничего не найдено.