306 votes

FirebaseApp par défaut n'est pas initialisé

Nous assistons à quelques exceptions près, avec le message d' Default FirebaseApp is not initialized in this process com.example.app. Make sure to call FirebaseApp.initializeApp(Context) first. dans notre application Android, dans lequel nous venons d'ajouter Firebase Distance Config.

La trace de la pile est comme suit:

Fatal Exception: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.example.app. Make sure to call FirebaseApp.initializeApp(Context) first.
       at com.google.firebase.FirebaseApp.getInstance(Unknown Source)
       at com.google.firebase.remoteconfig.FirebaseRemoteConfig.getInstance(Unknown Source)
       at com.example.app.fragments.SomeFragment.updateFooter(SourceFile:295)
       at com.example.app.fragments.SomeFragment.onCreateView(SourceFile:205)
       at android.support.v4.app.Fragment.performCreateView(SourceFile:2080)
       at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1108)
       at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1290)
       at android.support.v4.app.BackStackRecord.run(SourceFile:801)
       at android.support.v4.app.FragmentManagerImpl.execSingleAction(SourceFile:1638)
       at android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(SourceFile:679)
       at android.support.v4.app.FragmentPagerAdapter.finishUpdate(SourceFile:143)
       at android.support.v4.view.ViewPager.populate(SourceFile:1240)
       at android.support.v4.view.ViewPager.populate(SourceFile:1088)
       at android.support.v4.view.ViewPager.setAdapter(SourceFile:542)
       at com.example.app.SomeActivity.onSomeAsyncCallback(SourceFile:908)
       at com.example.app.SomeDataRetriever.onAsyncHttpCompleted(SourceFile:72)
       at com.example.app.io.AsyncHttp.onPostExecute(SourceFile:141)
       at com.example.app.io.AsyncHttp.onPostExecute(SourceFile:19)
       at android.os.AsyncTask.finish(AsyncTask.java:679)
       at android.os.AsyncTask.access$500(AsyncTask.java:180)
       at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:696)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:150)
       at android.app.ActivityThread.main(ActivityThread.java:5665)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:799)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:689)

C'est la version 9.6.1 et nous utilisons également d'autres Firebase composants:

compile 'com.google.firebase:firebase-ads:9.6.1'
compile 'com.google.firebase:firebase-config:9.6.1'
compile 'com.google.firebase:firebase-invites:9.6.1'
compile "com.google.firebase:firebase-messaging:9.6.1"

Comme je peux voir à partir de la documentation et de la Javadoc nous ne devrions pas avoir à faire toute l'initialisation manuelle dans notre cas.

L'exception se produit sur Android 4 à 6 sur une variété de dispositifs.

Edit:

Je vois que cette question devienne un peu d'attention. Je pense que cette explication peut être intéressant pour certains d'entre vous: https://firebase.googleblog.com/2016/12/how-does-firebase-initialize-on-android.html

428voto

Leonid Points 2299

Assurez-vous d'ajouter à votre build.gradle de niveau racine

 buildscript {
    // ...
    dependencies {
        // ...
        classpath 'com.google.gms:google-services:3.0.0'
    }
}
 

Ensuite, dans votre fichier Gradle au niveau du module (généralement app / build.gradle), ajoutez la ligne "appliquer le plugin" en bas du fichier pour activer le plugin Gradle:

 apply plugin: 'com.android.application'

android {
  // ...
}

dependencies {
  // ...
  compile 'com.google.firebase:firebase-core:9.6.1'
  // Getting a "Could not find" error? Make sure you have
  // the latest Google Repository in the Android SDK manager
}

// ADD THIS AT THE BOTTOM
apply plugin: 'com.google.gms.google-services'
 

Comme dit dans la documentation . J'ai eu une exception comme dans une question ci-dessus quand j'ai oublié d'ajouter ceci dans mes fichiers de classement.

163voto

Gabriel Lidenor Points 1667

J'ai eu le même problème il y a quelque temps.

Vous essayez d'obtenir une instance de Firebase sans l'initialiser. Ajoutez cette ligne de code avant d'essayer d'obtenir une instance de Firebase:

 FirebaseApp.initializeApp(this);
 

132voto

Ammar Bukhari Points 113

Pour moi, aucune des solutions ne fonctionnait à qui que ce soit. Seulement cela a fonctionné. Je viens juste de descendre mes services google de 4.1.0 à 4.0.0

 dependencies {
    classpath 'com.android.tools.build:gradle:3.3.0-alpha08'
    classpath 'com.google.gms:google-services:4.0.0'
    /*classpath 'com.google.gms:google-services:4.1.0' <-- this was the problem */
}
 

J'espère que ça aide

57voto

varotariya vajsi Points 2350

Il me manquait la ligne ci-dessous dans mon fichier app / build.gradle

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

et une fois le projet propre et exécuté à nouveau. Cela a réglé le problème pour moi.

16voto

ankurdayalsingh Points 121

La première chose que vous devez ajouter com.google.gms: google-services: xxx au niveau de la construction build.gradle

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

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
 

}

Ensuite, vous devez appliquer le plug-in: "com.google.gms.google-services" dans app / build.gradle.

 dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:design:25.3.1'
compile 'com.android.support:cardview-v7:25.3.1'

compile 'com.google.android.gms:play-services-gcm:9.8.0'
compile 'com.google.android.gms:play-services-maps:9.8.0'
compile 'com.google.android.gms:play-services-location:9.8.0'
compile 'com.google.firebase:firebase-messaging:9.8.0'
testCompile 'junit:junit:4.12'
}


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

et si le problème persiste, vous devez ajouter

 FirebaseApp.initializeApp(this);
 

juste avant d'appeler

 FirebaseInstanceId.getInstance().getToken();
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X