web-dev-qa-db-fra.com

FirebaseApp avec le nom [DEFAULT] n'existe pas

Après la migration vers Firebase Cloud Messaging.Lorsque mon application est ouverte, une erreur s'est produite, indiquant que Java.lang.IllegalStateException: FirebaseApp with name [DEFAULT] doesn't exist., j'ai déjà mis mon nouveau fichier google-services.json et mis à jour mon SDK. 

Voici mon activité principale

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

}
}
60
natsumiyu

S'il vous plaît faire une double vérification, vous avez ajouté 

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

au bas du fichier de classement de l'application, puis nettoyez et reconstruisez le projet

59
Venkatesan

Pas sûr, si c'est pertinent ici. Mais il y a un autre scénario où ce crash peut arriver. 


Si votre application dispose d'un service (avec un processus différent) et que vous créez votre propre classe Application, le service et l'application au premier plan utiliseront la même classe Application ( pas la même instance ) pour s'initialiser. Désormais, lorsque j'utilise la dépendance com.google.firebase:firebase-crash pour gérer les blocages, un service d'arrière-plan your.app.packagename:background_crash est créé. Pour une raison quelconque, cela provoquait des accidents sur mon application. Plus précisément, parce que dans ma classe d’application, je passais un appel comme, 

FirebaseDatabase.getInstance().setPersistenceEnabled(true);

Je suppose que le service d'arrière-plan lors de l'initialisation avec notre classe Application, d'une manière ou d'une autre, Firebase n'est pas initialisé. Pour résoudre ce problème, j'ai 

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

J'ai eu un problème similaire, et pour moi c'était un bug/problème avec la fusion manifeste. J'ai découvert que FirebaseInitProvider n'a pas été injecté dans le fichier manifeste final à cause de tools:node="replace" dans le fichier manifeste de mon application. Donc, essayez de supprimer cette balise XML et FirebaseInitProvider sera injecté et Firebase peut être initialisé correctement.

12
jmodrako

@jmodrako answer a résolu mon problème ... tools:node="replace" à tools:node="merge"

Explained ... sur AndroidManifest.xml 

De

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

À

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

Fusionner les problèmes avec les thèmes de la bibliothèque? Problèmes de construction résolus avec tools:replace="Android:theme"

Crédits à https://stackoverflow.com/a/38060272/2765087

Fichier 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 fichier:

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'
10
elron smith

Déplacez votre initialisation Firebase dans la classe onCreate of Application . Si vous avez également activé la persistance hors connexion, FirebaseDatabase.getInstance (). SetPersistenceEnabled (true) doit précéder toute autre initialisation.

2
Ramya Ramesh

Remplacez l'action de génération (GoogleServicesJson) par le nom de fichier Google-Services.Json.

0
Abdul basha

Dans votre dépendance, ajoutez simplement:

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

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

0
pavel

Studio Android

  1. apply plugin: 'com.google.gms.google-services' (build.gradle - Couche du module)
  2. Menu ~> Construire ~> CleanProject

Ça marche pour moi ok.

0
Maxim Firsoff

Dans mon cas, je n’initialisais pas Firebase au démarrage de l’application, j’ai dû procéder comme suit pour le résoudre.

@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);
    }
}
0
Anand Rockzz

Vérifiez toutes les configurations comme ci-dessous:

Paramètre de projet 1-firebase: google-services.json est correct? enter image description here

2- ajouter un SDK firebase enter image description here

3- clean - reconstruisez votre projet

j'espère que cela aide!

0
Mr Special

Enregistrez votre application dans Firebase et copiez le fichier google-services.json dans votre projet racine.

Appliquez classpath 'com.google.gms:google-services:3.1.0 à votre racine build.gradle.

Appliquez apply plugin: 'com.google.gms.google-services à votre projet.

0
user2306383