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
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);
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.
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.
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
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();
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
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.
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
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 '
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).
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 )
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">
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"
..}
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.
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" />