Подтвердить что ты не робот

FirebaseApp с именем [DEFAULT] не существует

После перехода на 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());

}
}
4b9b3361

Ответ 1

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

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

внизу файла app gradle, а затем очистите и перестройте проект

Ответ 2

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


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

FirebaseDatabase.getInstance().setPersistenceEnabled(true);

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

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

Ответ 3

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

Ответ 4

файл 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'

Ответ 5

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

Объяснено... на AndroidManifest.xml

С

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

Для

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

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

Кредиты fooobar.com/questions/97975/...

Ответ 6

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

Ответ 7

Android Studio

  • применить плагин: "com.google.gms.google-services" (build.gradle - уровень модуля)
  • Меню ~ > Сложение ~ > CleanProject

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

Ответ 8

В вашей зависимости просто добавьте:

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'
}

применить plugin: 'com.google.gms.google-services'

Ответ 9

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

Примените classpath 'com.google.gms:google-services:3.1.0 к своему корневому build.gradle.

Примените apply plugin: 'com.google.gms.google-services для вашего проекта.

Ответ 10

Измените действие по созданию (GoogleServicesJson) на имя файла Google-Services.Json.

Ответ 11

В моем случае я не инициализировал Firebase при запуске приложения, мне пришлось сделать следующее, чтобы решить его

@Service
public class FirebaseSetup implements CommandLineRunner {
    public void run(String... args) throws Exception {
        initializeFirebase();
    }
    private void initializeFirebase() throws FileNotFoundException, IOException {
        FileInputStream serviceAccount = new FileInputStream(ResourceUtils.getFile("classpath:ssf1-v1-firebase-adminsdk-zr72u-afcb5bc13b.json"));
        FirebaseOptions options = new FirebaseOptions.Builder().setCredentials(GoogleCredentials.fromStream(serviceAccount)).build();
        FirebaseApp.initializeApp(options);
    }
}

Ответ 12

Проверьте все конфигурации, как показано ниже:

Настройка проекта 1-firebase: google-services.json правильно? enter image description here

2- добавить Firebase SDK enter image description here

3- очистить - перестроить свой проект

надеюсь, это поможет!