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 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.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)
Il s'agit de la version 9.6.1 et nous utilisons également 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 le voir dans la documentation et le Javadoc, nous ne devrions pas avoir à effectuer d'initialisation manuelle dans notre cas.
L'exception se produit sur Android 4-6 sur une variété d'appareils.
Éditer:
Je vois que cette question attire un peu l'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
la source
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. Veuillez ajouter cette ligne de code avant d'essayer d'obtenir une instance de Firebase:
la source
apply plugin: 'com.google.gms.google-services'
Assurez-vous d'ajouter à votre build.gradle au niveau racine
Ensuite, dans votre fichier Gradle au niveau du module (généralement l'application / build.gradle), ajoutez la ligne `` appliquer le plugin '' au bas du fichier pour activer le plugin Gradle:
Comme indiqué dans la documentation . J'ai eu une exception comme dans une question ci-dessus quand j'ai oublié d'ajouter cela dans mes fichiers de notes.
la source
Il semble que cela
google-services:4.1.0
pose un problème. Soit le déclasser enou mettez-le à niveau
J'espère que ça aide
la source
classpath 'com.google.gms:google-services:4.1.0'
. YMMV.Il me manquait la ligne ci-dessous dans mon fichier app / build.gradle
et une fois le projet propre et réexécutez. Cela m'a arrangé.
la source
a un problème. utilisez plutôt:
la source
Première chose que vous devez ajouter com.google.gms: google-services: xxx au niveau racine build.gradle
}
Après cela, vous devez appliquer le plug-in: 'com.google.gms.google-services' sur app / build.gradle
et si vous rencontrez toujours un problème, vous devez ajouter
juste avant d'appeler
la source
Après la mise à jour de diverses dépendances, j'ai eu une erreur Crashlytics dans la compilation, 'Crashlytics a trouvé une clé API non valide: null. Vérifiez le plugin Crashlytics pour vous assurer que l'application a bien été ajoutée! Contactez [email protected] pour obtenir de l'aide. » La seule réponse non automatique que j'ai reçue de tentatives répétées de [email protected] vers laquelle l'erreur vous dirige est que Fabric et Crashlytics sont des équipes distinctes, donc ils ne pouvaient pas m'aider. J'ai évité d'implémenter la couche Fabric supplémentaire dans Crashlytics et je n'ai pas pu obtenir une nouvelle clé du site Fabric, ni même obtenir que le site me reconnaisse. En tentant de contourner ce problème en supprimant simplement Crashlytics de mon code, j'ai obtenu le 'Default FirebaseApp n'est pas initialisé dans ce processus com.example.app. Assurez-vous d'appeler FirebaseApp.initializeApp (Context) en premier «plantage lors de l'exécution.
Je n'ai jamais eu à ajouter la ligne d'initialisation de 'FirebaseApp.initializeApp (this)' et, en fait, elle l'a commentée. La documentation mentionne même ne pas en avoir besoin si vous n'utilisez Firebase que pour une seule activité. L'ajouter n'a fait aucune différence, a quand même eu l'erreur de tuer la course.
Il s'avère que la cause des nouvelles erreurs obscures est la dépendance mise à jour des services Google. Pour l'instant, je n'ai pas le temps de passer plus de jours à essayer de corriger les erreurs de fusil de chasse que la nouvelle dépendance provoque, donc jusqu'à ce que quelqu'un trouve des solutions, je m'en tiendrai à l'ancienne version. Outre l'étrange crash d'initialisation, la nouvelle version peut forcer Fabric sur les utilisateurs de Crashlytics. Les utilisateurs sont également forcés de revenir à l'ancienne version de dépendance: Crashlytics a trouvé une clé API non valide: null. après la mise à jour de com.google.gms: google-services: 4.1.0
EDIT 17/10/18: Après avoir mis à jour les dépendances suivantes à nouveau
J'ai eu un plantage immédiat sur la tentative d'installation avec «xxx a fermé de manière inattendue», comme lorsque j'ai tenté la mise à jour des dépendances de Google-Services. En fouillant dans le journal, j'ai trouvé un lien me demandant d'ajouter ceci au manifeste
Ceci est nouveau et n'est pas mentionné dans les instructions de configuration et interstitielles ici https://firebase.google.com/docs/android/setup et ici https://developers.google.com/admob/android/interstitial .
Auparavant, je n'avais à gérer qu'un seul ID lié à l'annonce pour mon application, INTERSTITIAL_UNIT_ID. Maintenant, deux doivent être traités. Outre l'ajout ci-dessus, la documentation ordonne d'ajouter ADMOB_APP_ID ici (le même numéro que vous liez avec ads.APPLICATION_ID dans le nouveau code manifeste)
Les ID INTERSTITIAL_UNIT_ID et ADMOB_APP_ID peuvent être déterrés dans votre console Google AdMob. Mon application de jeu a cessé de diffuser des annonces lors de ma première mise à jour des dépendances Firebase et ne diffuse toujours pas d'annonces, ce qui donne le code d'erreur 0 dans le
Même après tout cet encombrement supplémentaire, je ne peux toujours pas mettre à jour la dépendance google-services sans le crash de l'exécution de l'erreur d'initialisation. Je m'attends à être bloqué sur google-services: 4.0.1 pendant un certain temps.
EDIT 24/10/18: De [email protected] après des semaines de correspondance sur l'absence de diffusion d'annonces après les mises à jour:
«Merci d'avoir partagé les journaux de l'appareil. D'après les journaux, cela ressemble à un problème existant et cela figure sur notre liste de priorités et notre équipe travaille sur le correctif et cela ne se produit que sur les appareils Android O et P. ''
Seuls les appareils O et P? Ce sont les deux dernières versions, O est sorti le 25 septembre 2017. Oui.
la source
apply plugin: 'com.google.gms.google-services'
dans mon build.gradle (avec google-services: 4.1.0)Comme mentionné par @PSIXO dans un commentaire, cela pourrait être le problème avec la version dépendante de google-services. Pour moi en train de changer,
à
Il pourrait y avoir un problème avec la version 4.1.0. Parce que j'ai perdu beaucoup d'heures là-dessus, j'ai pensé écrire ceci comme réponse.
la source
Si vous utilisez FirebaseUI , pas besoin de
FirebaseApp.initializeApp(this);
dans votre code selon l'exemple .Assurez-vous d'ajouter à votre build.gradle au niveau racine:
Ensuite, dans votre fichier Gradle de niveau module :
C'est tout. Pas besoin de plus.
la source
Vous devez ajouter la dépendance buildscript de Firebase Gradle dans build.gradle (au niveau du projet)
et ajoutez le plugin Firebase pour Gradle dans app / build.gradle
Source: Android Studio Assistant
la source
Une autre solution possible - essayez différents Android Studio si vous utilisez des bêtas. A aidé pour moi. Le nouveau Android Studio n'a tout simplement pas ajouté Firebase correctement. Dans mon cas, 3.3 aperçu
Après une enquête plus approfondie, j'ai découvert que le problème était que le nouveau studio Android démarre le projet avec une version plus récente des services Google et il semble que c'était le problème d'origine. Comme @Ammar Bukhari l'a suggéré, ce changement a aidé:
classpath 'com.google.gms: google-services: 4.1.0' -> classpath 'com.google.gms: google-services: 4.0.0'
la source
Dans mon cas, le plugin gradle des services Google ne générait pas le
values.xml
fichier requis à partir dugoogle-services.json
fichier. La bibliothèque Firebase utilise ce fichier de valeurs généré pour s'initialiser et il semble qu'elle ne génère pas d'erreur si le fichier de valeurs est introuvable. Vérifiez que le fichier de valeurs existe à l'emplacement suivant et qu'il est rempli avec les chaînes appropriées de votregoogle-sevices.json
fichier:et / ou
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 d'outils Gradle trop avancée pour la version d'Android Studio que j'utilisais (c'est-à-dire que vous exécutez les outils de notation v3.2.X-YYY avec Android Studio v3.2).
la source
Nous n'avons pas besoin d'appeler
FirebaseApp.initializeApp(this);
n'importe où manuellement. et nous ne devrions pas trop.Je viens de faire face au même problème à ce sujet et j'ai obtenu une solution inattendue et étrange.
De cette réponse:
J'ai supprimé
tools:node="replace"
et ça marche comme un charme.la source
Je suppose qu'il y a des problèmes de compatibilité avec la version de google-services et les versions firebase.
J'ai changé dans le fichier build.gradle du projet, la dépendance
classpath 'com.google.gms: google-services: 4.1.0' à 4.2.0
puis mis à jour les dépendances build.gradle du module pour:
implémentation "com.google.firebase: base de données firebase: 16.0.6"
implémentation "com.google.firebase: firebase-core: 16.0.7"
Tout fonctionne comme un charme, pas besoin de taper FirebaseApp.initializeApp (this);
la source
La raison de ce problème est com.google.gms: version google-services.Lorsque j'utilisais 4.1.0 , je faisais face à la même erreur. Ensuite, je rétrograde la version. Avant
Après
J'espère que cela résoudra l'erreur.
la source
Si vous avez récemment mis à jour votre Android Studio vers la 3.3.1 qui a un problème avec les dépendances de com.google.gms: google-services (en dessous de 4.2.0), veuillez donc mettre à jour com.google.gms: google-services vers 4.2.0.
la source
L'une des raisons de ce phénomène pourrait être d'oublier l'ajout d'
android.permission.INTERNET
autorisations dansAndroidManifest.xml
la source
pour moi, c'était la mise à niveau des dépendances de com.google.gms: google-services dans build.gradle vers
la source
Bien que l'initialisation manuelle de Firebase
FirebaseApp.initializeApp(this);
fasse disparaître l'erreur, cela ne corrige pas la cause racine, certains problèmes étranges qui se produisent ne semblent pas être résolus, tels quecom.google.android.c2dm.permission.RECEIVE
autorisation qui est uniquement pour GCMUtilisez le plus récent plugin Gradle (par exemple le plugin Android 2.2.3 et Gradle 2.14.1) a tout corrigé. (Bien sûr, la configuration doit être correcte selon la documentation de Firebase )
la source
Mon problème n'a pas été résolu avec cette procédure
J'ai donc essayé autre chose et maintenant ma base de feu a été initialisée avec succès. Essayez d'ajouter les éléments suivants dans l'application module.gradle
la source
Cliquez sur Outils> Firebase pour ouvrir la fenêtre Assistant.
Cliquez pour développer l'une des fonctionnalités répertoriées (par exemple, Analytics), puis cliquez sur le lien du didacticiel fourni (par exemple, Enregistrer un événement Analytics).
Cliquez sur le bouton Se connecter à Firebase pour se connecter à Firebase et ajouter le code nécessaire à votre application.
https://firebase.google.com/docs/android/setup
la source
Firebase installé via les outils Android Studio ... Firebase ...
J'ai fait l'installation via les outils intégrés d'Android Studio (en suivant les derniers documents de Firebase). Cela a installé les dépendances de base, mais lorsque j'ai essayé de me connecter à la base de données, cela m'a toujours donné l'erreur que je devais appeler initialize en premier, même si j'étais:
J'obtenais cette erreur quoi que je fasse.
Enfin, après avoir vu un commentaire dans l'une des autres réponses, j'ai changé ce qui suit dans mon gradle de la version 4.1.0 en:
Quand je l'ai fait, j'ai finalement vu une erreur qui m'a aidé:
C'est le problème. Il semble que la version 4.1.0 ne donne pas cette erreur de construction pour une raison quelconque - ne mentionne pas que vous avez un fichier google-services.json manquant. Je n'ai pas le fichier google-services.json dans mon application, je suis donc sorti et l'ai ajouté.
Mais comme il s'agissait d'une mise à niveau qui utilisait une base de données firsbase en temps réel existante, je n'avais jamais eu à générer ce fichier dans le passé. Je suis allé sur Firebase et je l'ai généré et je l'ai ajouté et cela a résolu le problème.
Modifié à 4.1.0
Une fois que j'ai découvert tout cela, j'ai changé la variable classpath (4.1.0) et reconstruite et elle s'est à nouveau écrasée avec l'erreur qu'elle n'a pas été initalisée.
Problèmes de racine
la source
utilisez com.google.gms: google-services: 4.0.1 'au lieu de 4.1.0
la source
en changeant
à
Travaille pour moi
la source
En suivant la réponse de @Gabriel Lidenor, l'initialisation de l'application avec le contexte ne fonctionne pas dans mon cas. Que faire si vous essayez de créer une application firebase sans google-service.json? Donc, avant d'initialiser un certain nombre d'applications Firebase, vous devez d'abord l'initialiser en tant que;
la source
Nous devrons initialiser Firebase dans la fonction onCreate de la classe d'application.
}
Code dans le fichier manifeste: -
la source
Raison et solution: c'est l'erreur courante que vous obtiendrez la plupart du temps. Raison: lorsque vous intégrez votre projet avec Firebase il ajoute les dépendances
et classpath
classpath 'com.google.gms:google-services:4.1.0'
il vous suffit de les mettre à jour
Voici comment mettre à jour
aller à gradle sript et faire cela
la source