FirebaseApp par défaut n'est pas initialisé

nous voyons quelques exceptions avec le message Default FirebaseApp is not initialized in this process com.example.app. Make sure to call FirebaseApp.initializeApp(Context) first. dans notre application Android dans laquelle nous venons d'ajouter Firebase Remote Config.

la trace de la pile est la suivante:

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.access0(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 aussi d'autres composants Firebase:

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 de la documentation et le Javadoc nous ne devrions pas avoir à faire de manuel initialisation dans notre cas.

l'exception se produit sur Android 4-6 sur une variété d'appareils.

Edit:

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

117
demandé sur Roy Solberg 2016-10-17 11:19:23

15 réponses

j'ai eu ce même problème il y a quelque temps.

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

FirebaseApp.initializeApp(this);
78
répondu Gabriel Lidenor 2017-01-10 13:11:11

assurez-vous d'ajouter à votre construction au niveau de la racine.Grad

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

puis, dans votre fichier gradle de niveau de module (généralement l'application/build.gradle), ajouter la ligne 'apply plugin' en bas du fichier pour activer le Gradle plugin:

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 indiqué dans documentation . J'ai eu une exception comme dans une question ci-dessus quand oublié d'ajouter ceci dans Mes fichiers gradle.

207
répondu Leonid 2016-10-24 04:08:57

je manquais la ligne ci-dessous dans mon app/build .Grad file

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

et une fois propre projet et courir à nouveau. Qu'il fixe pour moi.

34
répondu varotariya vajsi 2018-06-20 07:25:31

pour moi, aucune des solutions ne fonctionnait et on ne me donnait aucun endroit. Seulement cela a fonctionné. Juste eu à Down 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

15
répondu Ammar Bukhari 2018-09-02 10:23:35

première chose que vous devez ajouter com.Google.GMS: google-services: X. x.X au niveau de la construction de la racine.Grad

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
}

}

Après cela, vous devez appliquer le plugin: com.Google.gms.google-les services de' app/build.Grad

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 vous avez encore un problème, vous devez ajouter

FirebaseApp.initializeApp(this);

juste avant que vous appeliez

FirebaseInstanceId.getInstance().getToken();
9
répondu ankurdayalsingh 2017-04-26 13:53:11

après avoir mis à jour diverses dépendances, j'ai eu une erreur de Crashlytics dans la compilation, 'Crashlytics a trouvé une clé D'API invalide: null. Vérifiez le plugin Crashlytics pour vous assurer que l'application a été ajoutée avec succès! Contact: support@fabric.io pour obtenir de l'aide."La seule réponse non-automatique que j'ai reçue des tentatives répétées de support@fabric.io L'erreur vous dirige à était que le tissu et Crashlytics sont des équipes séparées donc ils ne pouvaient pas m'aider. J'ai évité de mettre en place la couche de tissu supplémentaire. à Crashlytics, et a été incapable d'obtenir une nouvelle clé du site de tissu, ou même obtenir le site de me reconnaître. En essayant de contourner cela en enlevant simplement Crashlytics de mon code, j'ai obtenu le 'FirebaseApp par défaut n'est pas initialisé dans ce com de processus.exemple.App. Assurez-vous d'appeler FirebaseApp.initializeApp(Contexte) le premier " crash dans la course.

Je n'ai jamais eu à ajouter la ligne d'initialisation de 'FirebaseApp.initializeApp (this)", et en fait avait commenté. La Documentation mentionne même ne pas avoir besoin de cela si seulement utiliser Firebase pour une activité. Ajouter il n'a fait aucune différence, toujours eu l'erreur de course à pied.

S'avère que ce qui causait les nouvelles erreurs obscures était la dépendance mise à jour de google-services. Pour l'instant, je n'ai pas le temps de passer plus de jours à essayer de corriger les erreurs que la nouvelle dépendance provoque, donc jusqu'à ce que quelqu'un trouve des solutions, je m'en tiendrai à l'ancienne version. En plus de l'étrange plantage d'initialisation, le nouveau la version peut forcer le tissu sur les utilisateurs de Crashlytics. Les utilisateurs sont forcés de revenir à l'ancienne version de dépendances pour cela aussi: Crashlytics a trouvé une clé D'API invalide: null. après mise à jour com.Google.GMS: google-services: 4.1.0

com.google.gms:google-services:4.1.0//BAD
com.google.gms:google-services:4.0.1//GOOD
6
répondu Androidcoder 2018-10-05 18:51:03

si vous utilisez FirebaseUI , pas besoin de FirebaseApp.initializeApp(this); dans votre code selon l'échantillon .

assurez-vous d'ajouter à votre au niveau de la racine "151970920 de construire".Grad le:

buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        ...
        classpath 'com.google.gms:google-services:3.1.1'
        ...
    }
}

puis, dans votre niveau du module fichier Gradle:

dependencies {

    ...

    // 1 - Required to init Firebase automatically (THE MAGIC LINE)
    implementation "com.google.firebase:firebase-core:11.6.2"

    // 2 - FirebaseUI for Firebase Auth (Or whatever you need...)
    implementation 'com.firebaseui:firebase-ui-auth:3.1.2'
    ...
}

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

C'est ça. Pas besoin de plus.

5
répondu Phil 2018-01-03 08:50:04

vous devez ajouter la dépendance Firebase Grad buildscript dans build.gradle (niveau projet)

classpath 'com.google.gms:google-services:3.1.0'

et ajouter le plugin Firebase pour Grader dans app/build.Grad

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

build.gradle will include these new dependencies:
    compile 'com.google.firebase:firebase-database:11.0.4'

Source: Assistant De Studio Android

3
répondu Nico T. 2017-12-13 00:41:00

une autre solution possible - essayez différents Android Studio si vous utilisez des bêtas. Aidé pour moi. Le nouveau studio Android n'a tout simplement pas ajouté Firebase correctement. Dans mon cas 3.3 preview

après un peu plus d'enquête, j'ai trouvé le problème était que le nouveau studio Android commence projet avec la nouvelle version de services Google et il semble que c'était le problème original. Comme @Ammar Boukhari l'a suggéré, ce changement a aidé:

classepath "com.Google.GMS: google-services: 4.1.0' - > classpath ' com.Google.GMS: google-services: 4.0.0 '

3
répondu Александр Бабич 2018-09-18 08:53:35

dans mon cas, le plugin Google Services gradle ne générait pas le fichier values.xml requis à partir du fichier google-services.json . La bibliothèque Firebase utilise ce fichier de valeurs généré pour s'initialiser et il semble qu'elle ne jette pas d'erreur si le fichier de valeurs ne peut pas être trouvé. Vérifiez que le fichier de valeurs existe à l'endroit suivant et est rempli avec les chaînes appropriées de votre fichier google-sevices.json :

app/build/generated/res/google-services/{build_type}/values/values.xml

et / ou

app/build/generated/res/google-services/{flavor}/{build_type}/xml/global_tracker.xml

pour plus de détails voir: https://developers.google.com/android/guides/google-services-plugin

mon cas particulier a été causé par l'utilisation d'une version de gradle tools trop avancée pour la version D'Android Studio que j'exécutais (c'est-à-dire vous assurer d'exécuter grade tools v3.2.X-YYY avec Android Studio v3.2).

1
répondu TheIT 2018-09-06 00:12:48

bien que l'initialisation manuelle de Firebase avec FirebaseApp.initializeApp(this); fasse disparaître l'erreur, elle ne corrige pas la cause fondamentale, certains problèmes étranges se rencontrent ne semble pas être résolu, comme

  • FCM exige com.google.android.c2dm.permission.RECEIVE l'autorisation qui est-ce seulement pour GCM
  • token n'est pas enregistré après la première notification envoyée
  • message non reçu/ onMessageReceived() n'a jamais appelé

utiliser Gradle plugin plus récent (Par exemple Android plugin 2.2.3 et Gradle 2.14.1) tout corrigé. (Bien sûr, la configuration doit être correcte selon documentation Firebase )

0
répondu Beeing Jk 2017-08-16 04:34:30

nous devrons initialiser Firebase en fonction oncrée de la classe D'Application.

 package com.rocks.music.videoplayer;

 import android.app.Application;
 import android.content.Context;

 import com.google.firebase.FirebaseApp;


/**
* Created by ashish123 on 22/8/15.
  */
 public class MyApplication extends Application {

private static MyApplication mInstance;

@Override
public void onCreate() {
    super.onCreate();
    mInstance = this;
    try {
        FirebaseApp.initializeApp(this);
    }
    catch (Exception e) {
    }
}

public static Context getInstance() {
    return mInstance;
}

}

Code dans le fichier manifeste: -

  <application
    android:name="com.rocks.music.videoplayer.MyApplication"
    android:allowBackup="true"
    android:icon="@drawable/app_icon"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
0
répondu Ashish Saini 2017-08-17 12:36:07

mon problème n'a pas été résolu avec cette procédure

FirebaseApp.initializeApp(this); 

donc j'ai essayé autre chose et maintenant ma base de feu a été initialisée avec succès. Essayez d'ajouter ce qui suit dans le module app.Grad

BuildScript{
dependencies {..
classpath : "com.google.firebase:firebase-plugins:1.1.5"
    ..}
}

dependencies {...
implementation : "com.google.firebase:firebase-perf:16.1.0"
implementation : "com.google.firebase:firebase-core:16.0.3"
..}
0
répondu Fahad 2018-08-29 20:28:06

cliquez sur Outils > Firebase pour ouvrir la fenêtre Assistant.

Cliquez pour étendre l'une des fonctionnalités énumérées (par exemple, Analytics), puis cliquez sur le lien tutoriel fourni (par exemple, Log an Analytics event).

cliquez sur le bouton Connecter à Firebase pour vous connecter à Firebase et ajouter le code nécessaire à votre application.

https://firebase.google.com/docs/android/setup

0
répondu kreker 2018-09-24 15:19:14

l'une des raisons de cet événement pourrait être d'oublier d'ajouter android.permission.INTERNET permissions dans AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET" />

-1
répondu bianca 2017-08-24 21:49:31