Wir sehen einige Ausnahmen mit der Meldung Default FirebaseApp is not initialized in this process com.example.app. Make sure to call FirebaseApp.initializeApp(Context) first.
in unserer Android-App, in der wir gerade Firebase Remote Config hinzugefügt haben.
Die Stapelverfolgung lautet wie folgt:
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)
Dies ist Version 9.6.1 und wir verwenden auch andere Firebase-Komponenten:
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"
Wie ich aus der Dokumentation und dem Javadoc ersehen kann , sollten wir in unserem Fall keine manuelle Initialisierung durchführen müssen.
Die Ausnahme tritt bei Android 4-6 auf einer Vielzahl von Geräten auf.
Bearbeiten:
Ich sehe, dass diese Frage ein wenig Aufmerksamkeit erhält. Ich denke, diese Erklärung kann für einige von Ihnen interessant sein: https://firebase.googleblog.com/2016/12/how-does-firebase-initialize-on-android.html
quelle
Antworten:
Ich hatte das gleiche Problem vor einiger Zeit.
Sie versuchen, eine Instanz von Firebase abzurufen, ohne sie zu initialisieren. Bitte fügen Sie diese Codezeile hinzu, bevor Sie versuchen, eine Instanz von Firebase abzurufen:
quelle
apply plugin: 'com.google.gms.google-services'
Stellen Sie sicher, dass Sie es Ihrem build.gradle auf Stammebene hinzufügen
Fügen Sie dann in Ihrer Gradle-Datei auf Modulebene (normalerweise app / build.gradle) die Zeile "Plugin anwenden" am Ende der Datei hinzu, um das Gradle-Plugin zu aktivieren:
Wie in der Dokumentation gesagt . Ich hatte eine Ausnahme wie in einer Frage oben, als ich vergaß, diese in meine Gradle-Dateien aufzunehmen.
quelle
'com.google.firebase:firebase-core:9.8.0'
, und wechselte zucompile 'com.google.firebase:firebase-core:9.6.0'
meinen anderen Bibliotheken. Ursprüngliche Antwort Sie mischen Firebase SDK-Versionen. wie erklärtEs scheint, dass
google-services:4.1.0
das ein Problem hat. Entweder auf "Downgrade"oder aktualisieren Sie es auf
Ich hoffe es hilft
quelle
classpath 'com.google.gms:google-services:4.1.0'
erneut verwenden. YMMV.In meiner app / build.gradle- Datei fehlte die folgende Zeile
und einmal sauberes Projekt und wieder ausführen. Das hat es für mich behoben.
quelle
hat ein Problem. Verwenden Sie stattdessen:
quelle
Als erstes müssen Sie com.google.gms hinzufügen: google-services: xxx auf Root-Ebene build.gradle
}}
Danach müssen Sie das Plugin 'com.google.gms.google-services' unter app / build.gradle anwenden
und wenn Sie immer noch Probleme haben, müssen Sie hinzufügen
kurz bevor Sie anrufen
quelle
Nach dem Aktualisieren verschiedener Abhängigkeiten wurde beim Kompilieren ein Crashlytics-Fehler angezeigt: 'Crashlytics hat einen ungültigen API-Schlüssel gefunden: null. Überprüfen Sie das Crashlytics-Plugin, um sicherzustellen, dass die Anwendung erfolgreich hinzugefügt wurde! Wenden Sie sich an [email protected], um Unterstützung zu erhalten. ' Die einzige nicht automatische Antwort, die ich bei wiederholten Versuchen an [email protected] erhielt, war, dass Fabric und Crashlytics separate Teams sind, sodass sie mir nicht helfen konnten. Ich habe es vermieden, die zusätzliche Fabric-Ebene in Crashlytics zu implementieren, und konnte weder einen neuen Schlüssel von der Fabric-Site abrufen noch die Site dazu bringen, mich zu erkennen. Beim Versuch, dies zu umgehen, indem ich nur Crashlytics aus meinem Code entferne, wurde die Meldung "Standard-FirebaseApp wird in diesem Prozess nicht initialisiert" angezeigt. Stellen Sie sicher, dass Sie FirebaseApp.initializeApp (Context) als ersten Absturz während des Laufs aufrufen.
Ich musste die Initialisierungszeile von 'FirebaseApp.initializeApp (this)' nie hinzufügen und hatte sie tatsächlich auskommentiert. In der Dokumentation wird sogar erwähnt, dass dies nicht erforderlich ist, wenn Firebase nur für eine Aktivität verwendet wird. Das Hinzufügen machte keinen Unterschied, bekam immer noch den Fehler beim Töten.
Es stellte sich heraus, dass die aktualisierten Google-Services-Abhängigkeiten die neuen undurchsichtigen Fehler verursachten. Im Moment habe ich keine Zeit mehr, um zu versuchen, die durch die neue Abhängigkeit verursachten Schrotflintenfehler zu beheben. Bis jemand Lösungen findet, bleibe ich bei der alten Version. Neben dem seltsamen Absturz bei der Initialisierung kann die neue Version Crashlytics-Benutzern Fabric aufzwingen. Auch hierfür werden Benutzer auf die alte Abhängigkeitsversion zurückgesetzt: Crashlytics hat einen ungültigen API-Schlüssel gefunden: null. nach der Aktualisierung von com.google.gms: google-services: 4.1.0
EDIT 17.10.18: Nach erneuter Aktualisierung der folgenden Abhängigkeiten
Beim Installationsversuch mit "xxx wurde unerwartet geschlossen" ist sofort ein Absturz aufgetreten, beispielsweise als ich versucht habe, das Abhängigkeitsupdate für Google Services zu aktualisieren. Beim Durchsuchen des Protokolls fand ich einen Link, der mich anwies, diesen zum Manifest hinzuzufügen
Dies ist neu und wird in den Setup- und Interstitial-Anweisungen hier https://firebase.google.com/docs/android/setup und hier https://developers.google.com/admob/android/interstitial nicht erwähnt .
Früher musste ich mich nur mit einer werbebezogenen ID für meine App befassen, der INTERSTITIAL_UNIT_ID. Jetzt müssen zwei behandelt werden. Neben dem obigen Zusatz wird in der Dokumentation das Hinzufügen von ADMOB_APP_ID hier angewiesen (dieselbe Nummer, die Sie im neuen Manifestcode mit ads.APPLICATION_ID verknüpfen).
Die IDs INTERSTITIAL_UNIT_ID und ADMOB_APP_ID können in Ihrer Google AdMob-Konsole ausgegraben werden. Meine Spiel-App hat bei meinem ersten Update der Firebase-Abhängigkeiten die Schaltung von Anzeigen eingestellt und liefert immer noch keine Anzeigen, wobei der Fehlercode 0 in angezeigt wird
Selbst nach all dem zusätzlichen Durcheinander kann ich die Abhängigkeit von Google-Diensten immer noch nicht aktualisieren, ohne dass der Absturz beim Initialisierungsfehler auftritt. Ich gehe davon aus, dass ich für einige Zeit bei Google-Services: 4.0.1 stecken bleiben werde.
EDIT 24.10.18: Von [email protected] nach wochenlanger Korrespondenz über das Nichterhalten von Anzeigenschaltungen nach Updates:
'Danke, dass Sie die Geräteprotokolle geteilt haben. Aus den Protokollen geht hervor, dass ein Problem vorliegt. Dies steht auf unserer Prioritätenliste. Unser Team arbeitet an der Korrektur. Dies geschieht nur auf Android O- und P-Geräten. '
Nur O- und P-Geräte? Das sind die letzten beiden Versionen, O erschien am 25. September 2017. Huch.
quelle
apply plugin: 'com.google.gms.google-services'
Laufen , indem ich in meinem build.gradle (mit google-services: 4.1.0)Wie von @PSIXO in einem Kommentar erwähnt, könnte dies das Problem mit der Abhängigkeitsversion von Google-Diensten sein. Für mich ändern,
zu
Möglicherweise liegt ein Problem mit der Version 4.1.0 vor. Da ich viele Stunden damit verschwendet habe, dachte ich, dies als Antwort zu schreiben.
quelle
Wenn Sie mit FirebaseUI , keine Notwendigkeit von
FirebaseApp.initializeApp(this);
nach im Code der Probe .Stellen Sie sicher, dass Sie zu Ihrem build.gradle auf Stammebene hinzufügen:
Dann in Ihrer Gradle-Datei auf Modulebene :
Das ist es. Mehr nicht nötig.
quelle
Sie müssen die Buildscript-Abhängigkeit von Firebase Gradle in build.gradle (Projektebene) hinzufügen.
und fügen Sie das Firebase-Plugin für Gradle in app / build.gradle hinzu
Quelle: Android Studio Assistant
quelle
Eine andere mögliche Lösung - probieren Sie ein anderes Android Studio aus, wenn Sie Betas verwenden. Hat mir geholfen. Das neue Android Studio hat Firebase einfach nicht richtig hinzugefügt. In meinem Fall 3.3Vorschau
Nach einigen weiteren Untersuchungen stellte ich fest, dass das Problem darin bestand, dass das neue Android Studio das Projekt mit der neueren Google Services-Version startet und es anscheinend das ursprüngliche Problem war. Als @Ammar Bukhari vorschlug, half diese Änderung:
Klassenpfad 'com.google.gms: google-services: 4.1.0' -> Klassenpfad 'com.google.gms: google-services: 4.0.0'
quelle
In meinem Fall hat das Google Services-Gradle-Plugin nicht die erforderliche
values.xml
Datei aus dergoogle-services.json
Datei generiert . Die Firebase-Bibliothek verwendet diese generierte Wertedatei, um sich selbst zu initialisieren, und es scheint, dass sie keinen Fehler auslöst, wenn die Wertedatei nicht gefunden werden kann. Überprüfen Sie, ob die Wertedatei am folgenden Speicherort vorhanden ist und mit den entsprechenden Zeichenfolgen aus Ihrergoogle-sevices.json
Datei gefüllt ist:und / oder
Weitere Informationen finden Sie unter: https://developers.google.com/android/guides/google-services-plugin
Mein besonderer Fall wurde durch die Verwendung einer Gradle-Tools-Version verursacht, die für die von mir ausgeführte Version von Android Studio zu fortgeschritten war (dh sicherstellen, dass Sie Grade-Tools v3.2.X-YYY mit Android Studio v3.2 ausführen).
quelle
Wir müssen nirgendwo manuell anrufen
FirebaseApp.initializeApp(this);
. und wir sollten auch nicht.Ich hatte gerade das gleiche Problem und bekam eine unerwartete und seltsame Lösung.
Aus dieser Antwort:
Ich habe entfernt
tools:node="replace"
und es funktioniert wie Charme.quelle
Ich vermute, es gibt Kompatibilitätsprobleme mit der Version von Google-Services und Firebase-Versionen.
Ich habe in der build.gradle-Datei des Projekts die Abhängigkeit geändert
Klassenpfad 'com.google.gms: google-services: 4.1.0' bis 4.2.0
und aktualisierte dann die build.gradle-Abhängigkeiten des Moduls auf:
Implementierung 'com.google.firebase: firebase-database: 16.0.6'
Implementierung 'com.google.firebase: firebase-core: 16.0.7'
Alles funktioniert wie ein Zauber, Sie müssen FirebaseApp.initializeApp (this) nicht eingeben.
quelle
Grund dafür ist com.google.gms: google-services version. Als ich 4.1.0 verwendete , trat der gleiche Fehler auf. Dann stufe ich die Version herunter. Vor
Nach dem
Hoffe, es wird den Fehler beheben.
quelle
Wenn Sie kürzlich Ihr Android Studio auf 3.3.1 aktualisiert haben, bei dem ein Problem mit den Abhängigkeiten von com.google.gms: google-services (unter 4.2.0) auftritt, aktualisieren Sie com.google.gms: google-services auf 4.2.0.
quelle
Einer der Gründe dafür könnte darin bestehen, das Hinzufügen von
android.permission.INTERNET
Berechtigungen in zu vergessenAndroidManifest.xml
quelle
Für mich war es ein Upgrade der Abhängigkeiten von com.google.gms: google-services in build.gradle auf
quelle
Obwohl das manuelle Initialisieren von Firebase mit
FirebaseApp.initializeApp(this);
das Verschwinden des Fehlers behebt, behebt es nicht die Grundursache. Einige seltsame Probleme scheinen nicht gelöst zu sein, wie zcom.google.android.c2dm.permission.RECEIVE
Berechtigung, die nur für GCM giltVerwenden Sie ein neueres Gradle-Plugin (z. B. Android-Plugin 2.2.3 und Gradle 2.14.1), um alles zu beheben. (Natürlich muss das Setup gemäß der Firebase-Dokumentation korrekt sein. )
quelle
Mein Problem wurde mit diesem Verfahren nicht gelöst
Also habe ich etwas anderes ausprobiert und jetzt wurde meine Feuerbasis erfolgreich initialisiert. Versuchen Sie, Folgendes in app module.gradle hinzuzufügen
quelle
Klicken Sie auf Extras> Firebase, um das Assistentenfenster zu öffnen.
Klicken Sie auf, um eine der aufgelisteten Funktionen zu erweitern (z. B. Analytics), und klicken Sie dann auf den bereitgestellten Link zum Lernprogramm (z. B. Protokollieren eines Analytics-Ereignisses).
Klicken Sie auf die Schaltfläche Mit Firebase verbinden, um eine Verbindung zu Firebase herzustellen und der App den erforderlichen Code hinzuzufügen.
https://firebase.google.com/docs/android/setup
quelle
Installierte Firebase über Android Studio Tools ... Firebase ...
Ich habe die Installation über die integrierten Tools von Android Studio durchgeführt (gemäß den neuesten Dokumenten von Firebase). Dadurch wurden die grundlegenden Abhängigkeiten installiert, aber als ich versuchte, eine Verbindung zur Datenbank herzustellen, gab es immer den Fehler, den ich zuerst beim Initialisieren aufrufen musste, obwohl ich:
Ich habe diesen Fehler bekommen, egal was ich getan habe.
Nachdem ich einen Kommentar in einer der anderen Antworten gesehen hatte, änderte ich Folgendes in meinem Gradle von Version 4.1.0 in:
Als ich das tat, sah ich endlich einen Fehler, der mir half:
Das ist das Problem. Es scheint, dass die Version 4.1.0 diesen Build-Fehler aus irgendeinem Grund nicht ausgibt - erwähnt nicht, dass eine Datei google-services.json fehlt. Ich habe die Datei google-services.json nicht in meiner App, also habe ich sie hinzugefügt.
Da es sich jedoch um ein Upgrade handelte, bei dem eine vorhandene Echtzeit-Firsbase-Datenbank verwendet wurde, musste ich diese Datei in der Vergangenheit nie generieren. Ich ging zu Firebase und generierte es und fügte es hinzu und es behebte das Problem.
Zurück zu 4.1.0 geändert
Nachdem ich all dies entdeckt hatte, änderte ich die Klassenpfadvariable zurück (auf 4.1.0) und baute sie neu auf. Sie stürzte erneut mit dem Fehler ab, dass sie nicht initialisiert wurde.
Grundprobleme
quelle
Verwenden Sie com.google.gms: google-services: 4.0.1 'anstelle von 4.1.0
quelle
Ändern
zu
Funktioniert bei mir
quelle
Wenn Sie der Antwort von @Gabriel Lidenor folgen, funktioniert das Initialisieren der App mit dem Kontext in meinem Fall nicht. Was ist, wenn Sie versuchen, eine Firebase-App ohne google-service.json zu erstellen? Bevor Sie also eine beliebige Anzahl von Firebase-Apps initialisieren, müssen Sie zunächst Folgendes initialisieren:
quelle
Wir müssen Firebase in der onCreate-Funktion der Anwendungsklasse initialisieren.
}}
Code in der Manifestdatei: -
quelle
Grund und Lösung: Dies ist der häufigste Fehler, den Sie die meiste Zeit erhalten. Grund: Wenn Sie Ihr Projekt in die Firebase integrieren, werden die Abhängigkeiten hinzugefügt
und Klassenpfad
classpath 'com.google.gms:google-services:4.1.0'
Sie müssen sie nur aktualisieren
So können Sie aktualisieren
gehe zu gradle sript und mache das
quelle