Testuję nowe narzędzie Crash: https://firebase.google.com/docs/crash/
Po wykonaniu tych czynności aplikacja uruchamia się i ulega awarii, mówiąc:
05-18 17:28:18.870 28743 28743 E AndroidRuntime: java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.IllegalStateException: Incorrect provider authority in manifest. Most likely due to a missing applicationId variable in application's build.gradle.
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.app.ActivityThread.installProvider(ActivityThread.java:5156)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.app.ActivityThread.installContentProviders(ActivityThread.java:4748)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4688)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.app.ActivityThread.-wrap1(ActivityThread.java)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.os.Looper.loop(Looper.java:148)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5417)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: Caused by: java.lang.IllegalStateException: Incorrect provider authority in manifest. Most likely due to a missing applicationId variable in application's build.gradle.
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at com.google.firebase.provider.FirebaseInitProvider.zza(Unknown Source)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: at android.app.ActivityThread.installProvider(ActivityThread.java:5153)
05-18 17:28:18.870 28743 28743 E AndroidRuntime: ... 10 more
Android studio
>Build
>Clean Project
Odpowiedzi:
1.
Dodaj applicationId do pliku build.gradle aplikacji:
A niż Clean Project -> Build or Rebuild Project
2. Jeśli Twoja minSdkVersion <= 20 ( https://developer.android.com/studio/build/multidex )
Używaj Multidex poprawnie.
plik build.gradle aplikacji
manifest.xml
3.
Jeśli używasz niestandardowej klasy Application
manifest.xml
źródło
cordova platform add android
)?cordova platform add android
. Myślę, że zostanie to naprawione, gdy Cordova zostanie zaktualizowana? Ps. W ogóle nie używam Firebase.Miałem ten sam problem w urządzeniach z SDK <22, ale dla mnie powodem jest MultiDex,
MultiDex.install
musi być wattachBaseContext
metodzie.Jeśli używasz MultiDex, spróbuj tego:
app / build.gradle:
źródło
Zaakceptowana odpowiedź nie rozwiązała mojego problemu.
Jeśli używasz Multidex, Twoja aplikacja powinna rozszerzać się
MultiDexApplication
zamiastApplication
.MyApplication.java
AndroidManifest.xml
Mam nadzieję, że to pomoże.
źródło
Jeśli napotkasz ten sam problem, ale masz już
applicationId
zestawbuild.gradle
, możesz również spróbować wykonać następujące czynności:Build
>Clean Project
źródło
build
mnie działało tylko usuwanie katalogu. Wygląda na to, że został zepsuty przez moje ostatnie wyciągnięcie z repozytorium.Miałem ten sam problem w urządzeniach Pre Lollipop. Aby to rozwiązać, zrobiłem w następujący sposób. W międzyczasie w projekcie korzystałem z multiDex.
1. dodaj to dla build.gradle w module: app
2. Dodaj tę zależność
3. Następnie w aplikacji MainApplication
4. w pliku manifestów
To działa dla mnie. Mam nadzieję, że to też ci pomoże :)
źródło
powinieneś być pewien
aby dodać tę linię do swojego manifestu
https://developer.android.com/studio/run/index.html#instant-run
źródło
Nie dołączaj całej biblioteki usług odtwarzania, ale użyj tej, której potrzebujesz. Wymień wiersz w pliku build.gradle :
odpowiednim z interfejsów API usług Google Play , na przykład:
źródło
Dodaj to do build.gradle na poziomie modułu:
Jeśli przesłonisz
Application
klasę, rozszerz ją zMultiDexApplication
:Jeśli nie możesz go rozszerzyć z
MultiDexApplication
klasy, zastąpattachBaseContext()
metodę w następujący sposób:I nie uruchamiaj niczego wcześniej
MultiDex.install(this)
wykonaniem.Jeśli nie zastąpisz
Application
klasy, po prostu edytuj plik manifestu w następujący sposób:źródło
To powinno działać:
Krok 1:
Krok 2:
Krok 3: Weź inne zajęcia
Krok 4: Dodaj tę linię do manifestu
źródło
W moim przypadku problem został rozwiązany poprzez dodanie tej linii do modułu build.gradle:
// DODAJ TO NA DOLE
Źródło
źródło
build.gradle
dependencies { classpath 'com.google.gms:google-services:3.0.0' }
W moim przypadku problem pojawił się po migracji na AndroidX. Z jakiegoś powodu aplikacja wywoływała MultiDex.install () z odbiciem:
Zmieniłem pakiet z
android.support.multidex.MultiDex
naandroidx.multidex.MultiDex
. Zadziałało.źródło
Zamiast ręcznie dodawać nazwę pakietu do
build.gradle
, możesz to zrobić w ten sposób:najpierw dodaj tę linię na początku
Następnie dodaj to do pliku defaultConfig
Na koniec dodaj metodę doExtractStringFromManifest
Ponieważ jest wiele komentarzy Cordova do odpowiedzi, jeśli pracujesz z Cordovą, nie powinieneś tak naprawdę edytować
build.gradle
siebie, ma komentarz na początku, który mówiTak więc, jeśli używasz Cordova, najlepszą rzeczą, jaką możesz zrobić, jest aktualizacja do cordova-android 5.1.0 lub nowszego, gdzie te zmiany są już obecne.
źródło
Mój był taki, ponieważ pakiet SDK Firebase w pliku Gradle był ustawiony na nieprawidłową wersję numeryczną.
Usunąłem deby Firebase z Gradle i ponownie zainstalowałem je przy użyciu
Firebase Assistant
źródło
Przejdź do ustawień studia Android (naciskając
Ctrl+Alt+S
w systemie Windows), wyszukajInstant Run
i odznaczEnable Instant Run
.Po wyłączeniu
Instant Run
i ponownym uruchomieniu aplikacji problem zostanie rozwiązany.źródło
W przypadku natywnej aplikacji React wystąpił błąd
java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitProvider"
pobierano ją tylko dla urządzeń z Androidem w wersji <~ 4.4Rozwiązać go po prostu zastępując
Application
wMainApplication.java
zMultiDexApplication
UWAGA:
import android.support.multidex.MultiDexApplication;
źródło
Dodałem następujący kod w pliku proguard.
i zadziałało w moim przypadku.
źródło
w moim przypadku zapomniałem dodać (lub przypadkowo usunąć) rdzeń Firebase w build gradle
źródło
Mam ten błąd tylko na urządzeniach z API niższym niż 21. W moim przypadku musiałem pracować z projektem, w którym
multiDexEnabled
opcjabuild.gradle
była już ustawiona natrue
. Sprawdziłem plik dex z APK i numer metod przywoływanych był mniejszy niż 64k, więc projekt nie musi być projektem multidex, dlatego ustawiłemmultiDexEnabled
nafalse
. To rozwiązanie zadziałało dla mnie.źródło