Domyślna FirebaseApp nie jest inicjowana

235

Widzimy kilka wyjątków od komunikatu Default FirebaseApp is not initialized in this process com.example.app. Make sure to call FirebaseApp.initializeApp(Context) first.w naszej aplikacji na Androida, w której właśnie dodaliśmy Firebase Remote Config.

Ślad stosu wygląda następująco:

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)

To jest wersja 9.6.1 i używamy również innych składników 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"

Jak widzę z dokumentacji i Javadoc, nie powinniśmy wykonywać ręcznej inicjalizacji w naszym przypadku.

Wyjątek występuje na Androidzie 4-6 na różnych urządzeniach.

Edytować:

Widzę, że to pytanie zyskuje trochę uwagi. Myślę, że to wyjaśnienie może być interesujące dla niektórych z was: https://firebase.googleblog.com/2016/12/how-does-firebase-initialize-on-android.html

Roy Solberg
źródło
1
Spróbuj wyszukać SO „Domyślna FirebaseApp nie została zainicjowana”. Istnieje wiele różnych okoliczności, które mogą to powodować.
Doug Stevenson
Tak, mam. Nie znalazłem żadnych pasujących okoliczności, dlatego pytam. Mógłbym wspomnieć o tym w Q.
Roy Solberg
Czy jesteś w stanie przedstawić minimalny przykład odtwarzający ten problem i pokazać manifest, build.gradle i aktywność?
Doug Stevenson
Czy inicjujesz Firebase w ContentProvider lub w swojej klasie aplikacji?
Andrew Kelly,
2
Ten sam problem występuje u niewielkiego odsetka graczy. Korzystanie z najnowszej wersji 10.0.1
Dmitry

Odpowiedzi:

136

Miałem ten sam problem jakiś czas temu.

Próbujesz uzyskać instancję Firebase bez jej inicjalizacji. Dodaj ten wiersz kodu, zanim spróbujesz uzyskać instancję Firebase:

FirebaseApp.initializeApp(this);
Gabriel Lidenor
źródło
3
@Henrik Tylko w ExtendedApplication.onCreate ().
Roy Solberg,
5
Cóż, to nie działało dla mnie (wciąż kilka awarii w produkcji). Spróbuję dodać kod init do mojego pierwszego działania onCreate ().
Sébastien
77
Należy zauważyć, że oprócz tej inicjalizacji usługi Google muszą być stosowane w następujący sposób:apply plugin: 'com.google.gms.google-services'
pamobo0609
2
w jakim pliku muszę dodać ten plik MainActivity.java?
abhit
23
Dla mnie wersja com.google.gms: google-services: 4.1.0 uległa awarii, ale com.google.gms: google-services: 4.0.1 zadziałało
Igor Čordaš
345

Pamiętaj, aby dodać do pliku build.gradle na poziomie root

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

Następnie w pliku Gradle na poziomie modułu (zwykle app / build.gradle) dodaj wiersz „Zastosuj wtyczkę” u dołu pliku, aby włączyć wtyczkę Gradle:

apply plugin: 'com.android.application'

android {
  // ...
}

dependencies {
  // ...
  implementation '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'

Jak powiedziano w dokumentacji . Miałem wyjątek, jak w powyższym pytaniu, kiedy zapomniałem dodać to do moich plików ocen.

Leonid
źródło
2
Sprawdź i sprawdź. Właśnie zweryfikowałem, że mamy pliki Gradle zgodnie z opisem. Powinienem wspomnieć, że kod działa dobrze dla wielu użytkowników.
Roy Solberg
Możliwe, że miksujesz wersje bibliotek. Miałem ten sam problem, kiedy próbowałem użyć kompilacji, 'com.google.firebase:firebase-core:9.8.0' więc zmieniłem, compile 'com.google.firebase:firebase-core:9.6.0'aby dopasować do innych bibliotek. Oryginalna odpowiedź Mieszasz wersje Firebase SDK. jak wyjaśniono
krakama,
3
„zastosuj wtyczkę:„ com.google.gms.google-services ”działało dla mnie.
Rockyfish,
7
W moim przypadku nie pomogło. Problem dotyczy bardzo małego odsetka graczy. Najprawdopodobniej nie jest to problem z kodem ani ustawieniami, ale z interoperacyjnością z usługami odtwarzania zainstalowanymi na urządzeniach użytkownika :-(
Dmitry
2
dzięki :) Zapominam dodać tę linię w build.gradle: zastosuj wtyczkę: „com.google.gms.google-services”
Richi
126

Wygląda na to, że google-services:4.1.0ma problem. Zmień ją na niższą

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

lub uaktualnij do

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

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

Mam nadzieję, że to pomoże

Ammar Bukhari
źródło
9
Dla mnie też zadziałało. Wygląda na to, że jest jakiś problem z 4.1.0
iuq
Właśnie znalazłem ten problem i dodatkowo odkryłem, że była już dostępna aktualizacja w Android Studio 3.2 dla kompilacji narzędzi SDK systemu Android (Narzędzia -> Menedżer SDK -> Narzędzia SDK), zastosowanie tej aktualizacji pozwoli mi użyć classpath 'com.google.gms:google-services:4.1.0'ponownie. YMMV.
IainCunningham
2
omg, dosłownie spędziłem czas ponad 2 tygodnie, aby to zadziałało, i wszystko, co musiałem zrobić, to obniżyć wersję z 4.1.0 do 4.0.0?!?!?! Dziękuję tony
Oliver Spryn
4
zgodnie z
funkcją
Właśnie obniżyłem klasę com.google.gms: google-services: 4.1.0 do om.google.gms: google-services: 4.0.0 i działa. Uratowało mi to dzień.
Anil
51

Brakowało mi poniższej linii w moim pliku app / build.gradle

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

a raz wyczyść projekt i uruchom ponownie. To naprawiło to dla mnie.

varotariya vajsi
źródło
18
    classpath 'com.google.gms:google-services:4.1.0'

ma problem. zamiast tego użyj:

    classpath 'com.google.gms:google-services:4.2.0'
Alp Altunel
źródło
15

Najpierw musisz dodać com.google.gms: google-services: xxx na poziomie głównym 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
}

}

Następnie musisz zastosować wtyczkę: „com.google.gms.google-services” w aplikacji / 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'

a jeśli nadal masz problem, musisz dodać

FirebaseApp.initializeApp(this);

tuż przed dzwonieniem

FirebaseInstanceId.getInstance().getToken();
ankurdayalsingh
źródło
12

Po zaktualizowaniu różnych zależności w kompilacji wystąpił błąd Crashlytics: „Crashlytics znalazł niepoprawny klucz API: null. Sprawdź wtyczkę Crashlytics, aby upewnić się, że aplikacja została pomyślnie dodana! Skontaktuj się z [email protected] w celu uzyskania pomocy. ” Jedyną nieautomatyczną odpowiedzią, którą otrzymałem po wielokrotnych próbach wsparcia na adres [email protected], do którego ten błąd kieruje cię, było to, że Fabric i Crashlytics to osobne zespoły, więc nie mogły mi pomóc. Unikałem implementowania dodatkowej warstwy Fabric do Crashlytics i nie byłem w stanie uzyskać nowego klucza z witryny Fabric, ani nawet przekonać mnie, że strona mnie rozpoznaje. Próbując obejść ten problem, po prostu usuwając Crashlytics z mojego kodu, otrzymałem „Domyślna FirebaseApp nie jest inicjowana w tym procesie com.example.app. Pamiętaj, aby najpierw wywołać awarię FirebaseApp.initializeApp (kontekst).

Nigdy nie musiałem dodawać wiersza inicjującego „FirebaseApp.initializeApp (this)”, a tak naprawdę to skomentowałem. Dokumentacja wspomina nawet, że nie jest to konieczne, jeśli używa się Firebase tylko do jednego działania. Dodanie go nie miało znaczenia, nadal wystąpił błąd zabijania podczas uruchamiania.

Okazuje się, że przyczyną nowych niejasnych błędów była zaktualizowana zależność usług Google. Na razie nie mam czasu spędzać więcej dni, próbując naprawić błędy strzelby, które powoduje nowa zależność, więc dopóki ktoś nie wymyśli rozwiązań, pozostanę przy starej wersji. Oprócz dziwnej awarii inicjalizacji nowa wersja może wymuszać Fabric na użytkownikach Crashlytics. Użytkownicy są również zmuszani do powrotu do starej wersji zależności: Crashlytics znalazł niepoprawny klucz API: null. po zaktualizowaniu 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

EDYCJA 10/17/18: Po ponownej aktualizacji następujących zależności

implementation 'com.google.firebase:firebase-ads:17.0.0'
implementation 'com.google.firebase:firebase-auth:16.0.4'
implementation 'com.google.firebase:firebase-database:16.0.3'
implementation 'com.google.firebase:firebase-core:16.0.4

Natychmiast dostałem awarię przy próbie instalacji z „xxx niespodziewanie się zamknął”, na przykład kiedy próbowałem zaktualizować zależność usług Google. Wkopując się w dziennik, znalazłem link, który polecił mi dodać to do manifestu

<meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="ca-app-pub-xxxxxx~xxxxxx"/>

Jest to nowe i nie jest wymienione w instrukcjach konfiguracji i reklamach pełnoekranowych tutaj https://firebase.google.com/docs/android/setup i tutaj https://developers.google.com/admob/android/interstitial .

Kiedyś miałem do czynienia tylko z jednym identyfikatorem związanym z reklamami w mojej aplikacji, INTERSTITIAL_UNIT_ID. Teraz należy zająć się dwoma. Oprócz powyższego dodatku dokumentacja zaleca dodanie tutaj ADMOB_APP_ID (ten sam numer, który wiążesz z ads.APPLICATION_ID w nowym kodzie manifestu)

MobileAds.initialize(this, ADMOB_APP_ID);

Identyfikatory INTERSTITIAL_UNIT_ID i ADMOB_APP_ID można wykopać w konsoli Google AdMob. Moja aplikacja do gier przestała wyświetlać reklamy przy mojej pierwszej aktualizacji zależności firebase i nadal nie wyświetla reklam, dając kod błędu 0 w

public void onAdFailedToLoad(int errorCode){...

Nawet po tym całym dodanym bałaganie nadal nie mogę zaktualizować zależności usług Google bez awarii inicjalizacji błędu uruchamiania. Oczekuję, że przez pewien czas utknę w usługach Google: 4.0.1.

EDYCJA 10/24/18: Od [email protected] po tygodniach korespondencji na temat nie otrzymywania reklam po aktualizacjach:

„Dziękujemy za udostępnienie dzienników urządzenia. Z dzienników wygląda to na istniejący problem, który znajduje się na naszej liście priorytetów, a nasz zespół pracuje nad poprawką, a dzieje się tak tylko na urządzeniach z Androidem O i P. ”

Tylko urządzenia O i P? To dwie ostatnie wersje, O wyszedł 25 września 2017 r. Yikes.

Androidcoder
źródło
3
Doświadczyłem tego również dokładnie. Żałuję, że Google nie psuje kompilacji mojej aplikacji za każdym razem, gdy publikują aktualizację.
Patty P,
Cześć, apply plugin: 'com.google.gms.google-services'działam, dodając w build.gradle (z usługami Google: 4.1.0)
Nicolas Mauti
10

Jak wspomniano w komentarzu @PSIXO, może to być problem z wersją zależności usług Google. Zmieniam się,

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

do

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

działało. Może występować problem z wersją 4.1.0. Ponieważ zmarnowałem na to wiele godzin, postanowiłem napisać to jako odpowiedź.

Aayush Singla
źródło
1
tak, dla mnie to zadziałało, zmieniając wersję kompilacji na 4.0.1. Może to być kwestia zależności
Abraham Mathew
4
Po zaktualizowaniu wszystkich wersji do najnowszej (4.2.0) to rozwiązało problem dla mnie
david72,
7

Jeśli używasz FirebaseUI , nie trzeba od FirebaseApp.initializeApp(this);w kodzie zgodnie próbkę .

Upewnij się, aby dodać do głównego poziomu build.gradle:

buildscript {

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

Następnie w pliku Gradle na poziomie modułu :

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'

Otóż ​​to. Nie potrzebujesz więcej.

Phil
źródło
5

Musisz dodać zależność buildscript Firebase Gradle w build.gradle (na poziomie projektu)

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

i dodaj wtyczkę Firebase do Gradle w app / build.gradle

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

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

Źródło: Android Studio Assistant

Artificioo
źródło
5

Inne możliwe rozwiązanie - wypróbuj inny Android Studio, jeśli korzystasz z niektórych bet. Pomógł mi. Nowe Android Studio po prostu nie dodało poprawnie Firebase. W moim przypadku 3.3 podgląd

Po kilku dalszych badaniach odkryłem, że problem polega na tym, że nowe studio Android uruchamia projekt z nowszą wersją usług Google i wygląda na to, że był to pierwotny problem. Jak @Ammar Bukhari zasugerował, ta zmiana pomogła:

classpath „com.google.gms: google-services: 4.1.0” -> classpath ”com.google.gms: google-services: 4.0.0”

Александр Бабич
źródło
4

W moim przypadku wtyczka stopniowania usług Google nie generowała wymaganego values.xmlpliku z google-services.jsonpliku. Biblioteka Firebase używa tego wygenerowanego pliku wartości do zainicjowania się i wydaje się, że nie zgłasza błędu, jeśli nie można znaleźć pliku wartości. Sprawdź, czy plik wartości istnieje w następującej lokalizacji i czy zawiera odpowiednie ciągi z google-sevices.jsonpliku:

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

i / lub

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

Aby uzyskać więcej informacji, zobacz: https://developers.google.com/android/guides/google-services-plugin

Mój szczególny przypadek był spowodowany użyciem wersji narzędzi gradle, która była zbyt zaawansowana dla wersji Androida Studio, którą uruchomiłem (tj. Upewnij się, że korzystasz z grad grad tools v3.2.X-YYY z Android Studio v3.2).

TheIT
źródło
4

Nie musimy dzwonićFirebaseApp.initializeApp(this); nigdzie ręcznie. i my też nie powinniśmy.

Właśnie spotkałem się z tym samym problemem i otrzymałem nieoczekiwane i dziwne rozwiązanie.

Z tej odpowiedzi:

Usunąłem tools:node="replace"i działa jak urok.

Rumit Patel
źródło
4

Zgaduję, że występują problemy ze zgodnością z wersją usług Google i wersjami firebase.

Zmieniłem w pliku build.gradle projektu, zależność

classpath „com.google.gms: google-services: 4.1.0” do 4.2.0

a następnie zaktualizowałem zależności build.gradle modułu do:

wdrożenie „com.google.firebase: firebase-database: 16.0.6”

wdrożenie „com.google.firebase: firebase-core: 16.0.7”

Wszystko działa jak urok, nie trzeba wpisywać FirebaseApp.initializeApp (this);

Juan Carlos Iturriagagoitia
źródło
Rozwiązuję problem po przejściu na starszą wersję „com.google.firebase: firebase-core: 16.0.8” na „com.google.firebase: firebase-core: 16.0.7”, dzięki
Nanda Z
3

Powodem tego jest com.google.gms: wersja usług Google. Kiedy korzystałem z wersji 4.1.0 , napotkałem ten sam błąd. Następnie obniżam wersję. Przed

classpath 'com.android.tools.build:gradle:3.3.0'
classpath 'com.google.gms:google-services:4.1.0'

Po

classpath 'com.android.tools.build:gradle:3.3.0'
classpath 'com.google.gms:google-services:3.2.0'

Mam nadzieję, że rozwiąże to błąd.

Md Nakibul Hassan
źródło
3

Jeśli niedawno zaktualizowałeś Android Studio do 3.3.1, które mają problem z zależnościami com.google.gms: google-services (poniżej 4.2.0). Zaktualizuj com.google.gms: google-services do 4.2.0.

dependencies {
    classpath 'com.android.tools.build:gradle:3.3.1'
    classpath 'com.google.gms:google-services:4.2.0'
    }
Himanshu
źródło
3

Jednym z powodów tego może być zapominanie o dodawaniu android.permission.INTERNETuprawnień wAndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET" />
Bianca
źródło
2

dla mnie było to uaktualnianie zależności com.google.gms: google-services wewnątrz build.gradle do

buildscript {
repositories {
    jcenter()
    mavenCentral()
    maven {
        url 'https://maven.google.com/'
        name 'Google'
    }
    google()
}
dependencies {
    classpath 'com.android.tools.build:gradle:3.3.2'
    classpath 'com.google.gms:google-services:4.2.0'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
Jmz
źródło
0

Chociaż ręczne zainicjowanie Firebase za pomocą FirebaseApp.initializeApp(this);powoduje, że błąd znika, nie usuwa głównej przyczyny, niektóre dziwne problemy nie wydają się być rozwiązane, takie jak

  • FCM wymaga com.google.android.c2dm.permission.RECEIVEpozwolenia, które dotyczy tylko GCM
  • token zostaje wyrejestrowany po wysłaniu pierwszego powiadomienia
  • komunikat nie został odebrany / onMessageReceived () nigdy nie zostaje wywołany,

Użyj nowszej wtyczki Gradle (np. Wtyczki Android 2.2.3 i Gradle 2.14.1) naprawiło wszystko. (Oczywiście konfiguracja musi być poprawna zgodnie z dokumentacją Firebase )

Beeing Jk
źródło
Whoa, to interesujące informacje. Ponieważ problem występuje u tak małej liczby osób, trudno powiedzieć, czy coś takiego widzieliśmy. Może powinniśmy spróbować usunąć go ponownie i użyć nowszych wersji Gradle.
Roy Solberg,
0

Mój problem nie został rozwiązany dzięki tej procedurze

FirebaseApp.initializeApp(this); 

Więc spróbowałem czegoś innego i teraz moja baza ogniowa została pomyślnie zainicjowana. Spróbuj dodać następujące w module aplikacji. Gradle

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"
..}
Fahad
źródło
0

Kliknij Narzędzia> Firebase, aby otworzyć okno Asystenta.

Kliknij, aby rozwinąć jedną z wymienionych funkcji (na przykład Analytics), a następnie kliknij podany link do samouczka (na przykład Rejestruj zdarzenie Analytics).

Kliknij przycisk Połącz z Firebase, aby połączyć się z Firebase i dodać wymagany kod do swojej aplikacji.

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

kreker
źródło
0

Zainstalowana Firebase za pomocą narzędzi Android Studio ... Firebase ...

Wykonałem instalację za pomocą wbudowanych narzędzi z Android Studio (zgodnie z najnowszymi dokumentami z Firebase). Zainstalowało to podstawowe zależności, ale kiedy próbowałem połączyć się z bazą danych, zawsze pojawiał się błąd, który musiałem wywołać w celu zainicjowania, mimo że:

Domyślna FirebaseApp nie jest inicjowana w tym procesie. Pamiętaj, aby najpierw wywołać FirebaseApp.initializeApp (kontekst).

Otrzymywałem ten błąd bez względu na to, co zrobiłem.

Na koniec, po zobaczeniu komentarza w jednej z pozostałych odpowiedzi, zmieniłem następujące w mojej klasie z wersji 4.1.0 na:

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

Kiedy to zrobiłem, w końcu zobaczyłem błąd, który pomógł mi:

Brak pliku google-services.json. Wtyczka usług Google nie może bez niej działać. Szukana lokalizacja: C: \ Users \% nazwa użytkownika% \ AndroidStudioProjects \ TxtFwd \ app \ src \ nullnull \ debug \ google-services.json
C: \ Users \% nazwa użytkownika% \ AndroidStudioProjects \ TxtFwd \ app \ src \ debug \ nullnull \ google-services.json
C: \ Users \% nazwa użytkownika% \ AndroidStudioProjects \ TxtFwd \ app \ src \ nullnull \ google-services.json
C: \ Users \% nazwa użytkownika% \ AndroidStudioProjects \ TxtFwd \ app \ src \ debug \ google- services.json
C: \ Users \% nazwa użytkownika% \ AndroidStudioProjects \ TxtFwd \ app \ src \ nullnullDebug \ google-services.json
C: \ Users \% nazwa użytkownika% \ AndroidStudioProjects \ TxtFwd \ app \ google-services.json

To jest problem. Wygląda na to, że wersja 4.1.0 z jakiegoś powodu nie daje tego błędu kompilacji - nie wspomina, że ​​brakuje pliku google-services.json. Nie mam pliku google-services.json w mojej aplikacji, więc wyszedłem i dodałem go.

Ale ponieważ była to aktualizacja wykorzystująca istniejącą bazę danych firsbase w czasie rzeczywistym, nigdy nie musiałem generować tego pliku w przeszłości. Poszedłem do bazy ognia i wygenerowałem go, dodałem i naprawiłem problem.

Zmieniono z powrotem na 4.1.0

Po odkryciu tego wszystkiego zmieniłem z powrotem zmienną classpath (na 4.1.0) i przebudowałem ją, a następnie ponownie zawiesił się z błędem, że nie została zainicjowana.

Problemy z rootowaniem

  • Budowanie w wersji 4.1.0 nie zapewnia prawidłowego błędu podczas prekompilacji, więc możesz nie wiedzieć, co się dzieje.
  • Uruchomienie w wersji 4.1.0 powoduje błąd inicjalizacji.
raddevus
źródło
0

użyj com.google.gms: google-services: 4.0.1 ”zamiast 4.1.0

Tony Macias
źródło
0

wymiana pieniędzy

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

do

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

Pracuje dla mnie

Fawad Khan
źródło
Korzystanie z następujących najnowszych wersji pomogło mi rozwiązać problem. Nie trzeba obniżać wersji :) classpath 'com.android.tools.build:gradle:3.4.2' classpath 'com.google.gms: google-services: 4.3.0'
granat
0

Postępując zgodnie z odpowiedzią @Gabriel Lidenor, inicjowanie aplikacji z kontekstem nie działa w moim przypadku. Co jeśli próbujesz utworzyć aplikację firebase bez google-service.json? Więc przed zainicjowaniem dowolnej liczby aplikacji firebase, najpierw musisz zainicjować jako;

FirebaseOptions options = new FirebaseOptions.Builder().setApplicationId("APP_ID")
                    .setGcmSenderId("SENDER_ID").build();
FirebaseApp.initializeApp(context, options, "[DEFAULT]");
Muhammed Yalçın Kuru
źródło
-1

Będziemy musieli zainicjować Firebase w funkcji onCreate klasy aplikacji.

 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;
}

}

Kod w pliku manifestu: -

  <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">
Ashish Saini
źródło
-1

Powód i rozwiązanie: jest to częsty błąd, który najczęściej występuje. Powód: po zintegrowaniu projektu z Firebase dodaje on zależności

implementation 'com.google.firebase:firebase-auth:16.1.0'
implementation 'com.google.android.gms:play-services-auth:16.0.1'

i ścieżka klasy

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

wystarczy je zaktualizować

W ten sposób możesz zaktualizować

idź do grad sript i zrób to

Muhammad Ali
źródło