Ich teste das neue Crash-Tool: https://firebase.google.com/docs/crash/
Nachdem Sie die Schritte ausgeführt haben, wird die App gestartet und stürzt ab und sagt:
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
Antworten:
1.
Fügen Sie die applicationId zum build.gradle der Anwendung hinzu:
Und dann Projekt bereinigen -> Projekt erstellen oder neu erstellen
2. Wenn Ihre minSdkVersion <= 20 ist ( https://developer.android.com/studio/build/multidex )
Verwenden Sie Multidex richtig.
build.gradle der Anwendung
manifest.xml
3.
Wenn Sie eine benutzerdefinierte Anwendungsklasse verwenden
manifest.xml
quelle
cordova platform add android
)?cordova platform add android
. Ich denke, es wird behoben, sobald Cordova aktualisiert wird? Ps. Ich benutze Firebase überhaupt nicht.Ich hatte das gleiche Problem bei Geräten mit SDK <22, aber für mich ist der Grund der MultiDex, der
MultiDex.install
in derattachBaseContext
Methode sein muss.Wenn Sie MultiDex verwenden, versuchen Sie Folgendes:
app / build.gradle:
quelle
Die akzeptierte Antwort hat mein Problem nicht gelöst.
Wenn Sie Multidex verwenden, sollte Ihre Anwendung
MultiDexApplication
anstelle von erweitert werdenApplication
.MyApplication.java
AndroidManifest.xml
Ich hoffe es hilft.
quelle
Wenn Sie das gleiche Problem haben, aber das
applicationId
Set bereits installiert habenbuild.gradle
, können Sie auch Folgendes versuchen:Build
>Clean Project
quelle
build
Verzeichnisses hat bei mir funktioniert. Scheint, als wäre es durch meinen letzten Zug aus dem Repo durcheinander gebracht worden.Ich hatte das gleiche Problem bei Pre Lollipop-Geräten. Um das zu lösen, habe ich Folgendes getan. In der Zwischenzeit habe ich multiDex im Projekt verwendet.
1. Fügen Sie dies für build.gradle in module: app hinzu
2. Fügen Sie diese Abhängigkeit hinzu
3. Dann in der Hauptanwendung
4.In der Manifestdatei
Das funktioniert bei mir. Hoffe das hilft dir auch :)
quelle
du solltest dir sicher sein
um diese Zeile in Ihrem Manifest hinzuzufügen
https://developer.android.com/studio/run/index.html#instant-run
quelle
Schließen Sie nicht die gesamte Play Services-Bibliothek ein, sondern verwenden Sie die benötigte. Ersetzen Sie die Zeile in Ihrem build.gradle :
mit der entsprechenden API von Google Play Services , wie zum Beispiel:
quelle
Fügen Sie dies Ihrem build.gradle auf Modulebene hinzu:
Wenn Sie die
Application
Klasse überschreiben , erweitern Sie sie vonMultiDexApplication
:Wenn Sie es nicht von der
MultiDexApplication
Klasse aus erweitern können, überschreiben Sie dieattachBaseContext()
Methode wie folgt:Und führen Sie nichts aus, bevor
MultiDex.install(this)
es ausgeführt wird.Wenn Sie die
Application
Klasse nicht überschreiben, bearbeiten Sie Ihre Manifestdatei einfach wie folgt:quelle
Das sollte funktionieren:
Schritt 1:
Schritt 2:
Schritt 3: Nehmen Sie an einer anderen Klasse teil
Schritt 4: Fügen Sie diese Zeile im Manifest hinzu
quelle
In meinem Fall wurde das Problem durch Hinzufügen dieser Zeile zum Modul build.gradle gelöst:
// HINZUFÜGEN
Quelle
quelle
build.gradle
dependencies { classpath 'com.google.gms:google-services:3.0.0' }
In meinem Fall trat das Problem nach der Migration auf AndroidX auf. Aus irgendeinem Grund rief die App MultiDex.install () mit Reflexion auf:
Ich habe das Paket von
android.support.multidex.MultiDex
auf geändertandroidx.multidex.MultiDex
. Es funktionierte.quelle
Anstatt den Paketnamen manuell auf dem hinzuzufügen
build.gradle
, können Sie dies folgendermaßen tun:Fügen Sie diese Zeile zuerst am Anfang hinzu
Fügen Sie dies dann in der defaultConfig hinzu
Fügen Sie abschließend die Methode doExtractStringFromManifest hinzu
Da es viele Cordova-Kommentare zu der Antwort gibt, sollten Sie, wenn Sie mit Cordova arbeiten, diese nicht wirklich selbst bearbeiten
build.gradle
, da sie am Anfang einen Kommentar enthält, der besagtWenn Sie also eine Cordova verwenden, können Sie am besten auf Cordova-Android 5.1.0 oder höher aktualisieren, wenn diese Änderungen bereits vorhanden sind.
quelle
Meins war, weil das Firebase SDK in der Gradle-Datei auf eine falsche Nummernversion eingestellt war.
Ich habe die Firebase-Debs von Gradle entfernt und sie mit erneut installiert
Firebase Assistant
quelle
Gehen Sie zur Android Studio-Einstellung (durch Drücken
Ctrl+Alt+S
in Windows), suchen Sie nachInstant Run
und deaktivieren SieEnable Instant Run
.Durch Deaktivieren
Instant Run
und erneutes Ausführen Ihrer Anwendung wird das Problem behoben.quelle
Für die reaktionsfähige native App war der Fehler, dass
java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitProvider"
sie nur für Geräte mit Android-Version <~ 4.4 angezeigt wurdeGelöst es nur durch Austausch
Application
inMainApplication.java
mitMultiDexApplication
HINWEIS:
import android.support.multidex.MultiDexApplication;
quelle
Ich habe den folgenden Code in die Proguard-Datei eingefügt.
und es hat in meinem Fall funktioniert.
quelle
In meinem Fall vergesse ich, Firebase-Core in Build Gradle hinzuzufügen (oder versehentlich zu löschen)
quelle
Ich habe diesen Fehler nur auf Geräten mit einer API unter 21 erhalten. In meinem Fall musste ich mit einem Projekt arbeiten, für das
multiDexEnabled
Option inbuild.gradle
bereits festgelegt wartrue
. Ich habe dex - Datei von APK und referenzierten Methoden Zahl war weniger als 64k, so Projekt kein multidex man sein muss, damit ich festgelegtmultiDexEnabled
auffalse
. Diese Lösung hat bei mir funktioniert.quelle