Je teste le nouvel outil Crash: https://firebase.google.com/docs/crash/
Après avoir parcouru les étapes, l'application se lance et se bloque en disant:
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
Réponses:
1.
Ajoutez l' applicationId au build.gradle de l'application:
Et que Clean Project -> Build or Rebuild Project
2. Si votre minSdkVersion <= 20 ( https://developer.android.com/studio/build/multidex )
Utilisez Multidex correctement.
build.gradle de l'application
manifest.xml
3.
Si vous utilisez une classe Application personnalisée
manifest.xml
la source
cordova platform add android
)?cordova platform add android
. Je suppose que cela sera corrigé une fois que cordova sera mis à jour? Ps. Je n'utilise pas du tout Firebase.J'étais avec le même problème dans les appareils avec SDK <22, mais pour moi la raison est le MultiDex, le
MultiDex.install
doit être dans laattachBaseContext
méthode.Si vous utilisez MultiDex, essayez ceci:
app / build.gradle:
la source
La réponse acceptée n'a pas résolu mon problème.
Si vous utilisez Multidex, votre application doit s'étendre
MultiDexApplication
au lieu deApplication
.MyApplication.java
AndroidManifest.xml
J'espère que ça aide.
la source
Si vous rencontrez le même problème mais que vous disposez déjà de l'
applicationId
ensemblebuild.gradle
, vous pouvez également essayer ce qui suit:Build
>Clean Project
la source
build
répertoire a fonctionné pour moi. On dirait qu'il a été gâché par mon dernier retrait du repo.J'ai eu le même problème dans les appareils Pre Lollipop. Pour résoudre cela, j'ai fait ce qui suit. En attendant, j'utilisais multiDex dans le projet.
1. ajoutez ceci pour build.gradle dans le module: app
2. ajoutez cette dépendance
3. puis dans l'application principale
4.Dans le fichier manifestes
Cela fonctionne pour moi. J'espère que ça va t'aider aussi :)
la source
tu devrais être sûr
pour ajouter cette ligne à votre manifeste
https://developer.android.com/studio/run/index.html#instant-run
la source
N'incluez pas toute la bibliothèque de services de jeu mais utilisez celle dont vous avez besoin. Remplacez la ligne dans votre build.gradle :
avec celle appropriée des API des services Google Play , comme par exemple:
la source
Ajoutez ceci à votre build.gradle au niveau du module:
Si vous remplacez la
Application
classe, étendez-la à partir deMultiDexApplication
:Si vous ne pouvez pas l'étendre à partir de la
MultiDexApplication
classe, remplacez laattachBaseContext()
méthode comme suit:Et ne rien exécuter avant d'
MultiDex.install(this)
être exécuté.Si vous ne remplacez pas la
Application
classe, modifiez simplement votre fichier manifeste comme suit:la source
Cela devrait fonctionner:
Étape 1:
Étape 2:
Étape 3: Suivez un autre cours
Étape 4: ajoutez cette ligne au manifeste
la source
Dans mon cas, le problème a été résolu en ajoutant cette ligne au module build.gradle:
// AJOUTER CECI EN BAS
La source
la source
build.gradle
dependencies { classpath 'com.google.gms:google-services:3.0.0' }
Dans mon cas, le problème est survenu après la migration vers AndroidX. Pour une raison quelconque, l'application appelait MultiDex.install () avec réflexion:
J'ai changé le package de
android.support.multidex.MultiDex
àandroidx.multidex.MultiDex
. Ça a marché.la source
Au lieu d'ajouter manuellement le nom du package sur le
build.gradle
, vous pouvez le faire de cette façon:ajoutez d'abord cette ligne au début
Ajoutez ensuite ceci sur defaultConfig
Et enfin, ajoutez la méthode doExtractStringFromManifest
Comme il y a beaucoup de commentaires Cordova sur la réponse, si vous travaillez avec Cordova, vous ne devriez pas vraiment éditer le
build.gradle
vous - même, il a un commentaire au début qui ditDonc, si vous utilisez un Cordova, la meilleure chose que vous pouvez faire est de mettre à jour vers cordova-android 5.1.0 ou supérieur là où ces changements sont déjà présents.
la source
Le mien était parce que le SDK Firebase dans le fichier Gradle était défini sur une version de numéro incorrect.
J'ai supprimé les debs Firebase de Gradle et les ai réinstallés à nouveau en utilisant
Firebase Assistant
la source
Accédez aux paramètres du studio Android (en appuyant
Ctrl+Alt+S
sur Windows), recherchezInstant Run
et décochezEnable Instant Run
.En désactivant
Instant Run
et en exécutant à nouveau votre application, le problème sera résolu.la source
Pour l'application native react, l'erreur était que
java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitProvider"
cela ne se produisait que pour les appareils avec la version Android <~ 4.4Résolu par simple remplacement
Application
dansMainApplication.java
desMultiDexApplication
REMARQUE:
import android.support.multidex.MultiDexApplication;
la source
J'ai ajouté le code suivant dans le fichier proguard.
et cela a fonctionné dans mon cas.
la source
dans mon cas, j'oublie d'ajouter (ou de supprimer accidentellement) le noyau firebase dans build gradle
la source
J'ai cette erreur uniquement sur les appareils avec une API inférieure à 21. Dans mon cas, j'ai dû travailler avec un projet où l'
multiDexEnabled
option dansbuild.gradle
était déjà définie surtrue
. J'ai vérifié le fichier dex à partir de l'APK et le nombre de méthodes référencées était inférieur à 64k, donc le projet n'a pas besoin d'être un multidex, donc je me suis mismultiDexEnabled
àfalse
. Cette solution a fonctionné pour moi.la source