web-dev-qa-db-fra.com

Impossible de trouver la classe "com.google.firebase.provider.FirebaseInitProvider"

Avant, mon programme fonctionnait bien. Mais quand je viens de mettre à jour mon studio Android avec la dernière version (2.2 construite le 15 sept. 16), je rencontre l’erreur suivante. Lorsque je l'ai construit, il est écrit: Construit avec succès, mais cette erreur apparaît lorsque j'exécute mon programme:

E/AndroidRuntime: EXCEPTION FATALE: Processus principal: com.example.androidtutorial, PID: 28293 Java.lang.RuntimeException: Impossible d'obtenir le fournisseur com.google.firebase.provider.FirebaseInitProvider: Java.lang.Class.ClassNouvelException: N'a pas trouvé la classe "com.google.firebase.provider.FirebaseInitProvider" sur le chemin: DexPathList [[fichier Zip "/data/app/com.example.androidtutorial-2/base.apk"],nativeLibraryDirectories=[/data/app/com.example .androidtutorial-2/lib/x86,/system/lib,/vendor/lib]] sur Android.app.ActivityThread.installProvider (ActivityThread.Java:5814) sur Android.app.ActivityThread.installContentProviders (ActivityThread.Java:5403) sur Android.app.ActivityThread.handleBindApplication (ActivityThread.Java:5342) sur Android.app.ActivityThread.-wrap2 (ActivityThread.Java) sur Android.app.ActivityThread $ H.handleMessage (ActivityThread.Java:1528) sur Android.os .Handler.dispatchMessage (Handler.Java:102) sur Android.os.Looper.loop (Looper.Java:154) sur Android.app.ActivityThread.main (ActivityThread.Java:6077) à Java.lang.reflect.Method.invoke (Méthode native) à com.Android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.Java:865) à com.Android.internal.os.ZygoteInit.main (ZygoteInit. Java: 755) Causée par: Java.lang.ClassNotFoundException: la classe "com.google.firebase.provider.FirebaseInitProvider" n'a pas été trouvée dans le chemin: DexPathList [[fichier ZIP "/data/app/com.example.androidtutorial-2 /base.apk"],nativeLibraryDirectories=[/data/app/com.example.androidtutorial-2/lib/x86,/system/lib,/vendor/lib]] à l'adresse dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.Java : 56) à Java.lang.ClassLoader.loadClass (ClassLoader.Java:380) à Java.lang.ClassLoader.loadClass (ClassLoader.Java:312) à Android.app.ActivityThread.installProvider (ActivityThread.Java:5799) à Android .app.ActivityThread.installContentProviders (ActivityThread.Java:5403) sur Android.app.ActivityThread.handleBindApplication (ActivityThread.Java:5342) sur Android.app.ActivityThread.-wrap2 (ActivityThread.Java) sur Android.app.Activi tyThread $ H.handleMessage (ActivityThread.Java:1528) sur Android.os.Handler.dispatchMessage (Handler.Java:102) sur Android.os.Looper.loop (Looper.Java:154) sur Android.app.ActivityThread.main (ActivityThread.Java:6077) à Java.lang.reflect.Method.invoke (Méthode native) à com.Android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.Java:865) à com.Android.internal.os .ZygoteInit.main (ZygoteInit.Java:755)

J'ai déjà regardé d'autres questions mais le problème n'est pas le même. Qu'est-ce que je fais mal? S'il vous plaît aider

11
TSR

Dans le module d'application build.gradle

Android {
   ...
   defaultConfig {
      multiDexEnabled true
      ...
   }
}

dependencies {
  // add dependency 
  compile 'com.Android.support:multidex:1.0.1'
}

Changer le nom dans AndroidManifest.xml

<application
   ....
  Android:name=".MyApplication">

 // ...
</application>

Créez un fichier MyApplication.Java

public class MyApplication extends Application {

    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }

}

_ {Pour plus de détails, vous pouvez voir ceci link . _

16
Garg's

Il semble que vous ayez un problème avec Over 64K Methods et que vous ayez essayé de le résoudre avec multiDexEnabled true dans build.gradle (module d'application). Mais vous devez ajouter plus que:

  1. add: compile 'com.Android.support:multidex:1.0.0' dans les dépendances de build.gradle

  2. Etend votre classe d'application à MultiDexApplication. et ajoutez MultiDex.install(this); dans la méthode onCreated de la classe Application.

votre problème devrait être résolu

lien de référence: https://developer.Android.com/studio/build/multidex.html

10
Chi Minh Trinh

app => build.gradle

Android {
.....
defaultConfig {
......
 multiDexEnabled true//add this line
}
......
dependencies{
 compile 'com.Android.support:multidex:1.0.1'//add this line
}

En manifeste

<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
....
<application
....
 Android:name="Android.support.multidex.MultiDexApplication" 
...>
 <activity   />
...

</application>

</manifest>
2
pruthwiraj.kadam

Cela fonctionne très bien si vous ajoutez le support multidex dans manifest, chaque fois que je rencontre un problème, je le répare de cette manière plus de 64K.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
    package="com.example.myapp">
    <application
            Android:name="Android.support.multidex.MultiDexApplication" >
        ...
    </application>
</manifest>
2
ProgrammerCk

supprimez simplement les dépendances des services de Google Play si vous l’incluez. Je suis capable de corriger cette erreur à chaque fois en utilisant ceci. Si vous utilisez Google Maps ou tout autre service Google spécifique, incluez la dépendance de ce service uniquement. Essayez également de vérifier la version de la dépendance du service Google Play.

2
akitsme

J'ai eu la même erreur et résolu en utilisant:

  1. Nettoyer/reconstruire votre projet.
  2. Redémarrez Android Studio.
  3. Mettez à jour tous les outils du SDK et Android Studio.
  4. Vider le cache et effacer les données sur le périphérique.
0
Vaibhav Jain

J'ai eu la même erreur. Je l'ai résolu par:

1) Suppression des packages inutiles dans le build.gralde. 

2) Désactiver le plugin Firebase 

3) Mise à jour de l’outil de compilation à la dernière 

0
user6889641

Ajouter la ligne suivante à Manifest.xml

 <application
    Android:name="Android.support.multidex.MultiDexApplication"

Ajouter ce fichier build.gradle au niveau de l'application sn

 defaultConfig {
    multiDexEnabled true
} 
      ......

dependencies {
compile 'com.Android.support:multidex:1.0.1'
}
0
Parinda Rajapaksha

Une solution simple qui fonctionne pour moi après avoir essayé toutes ces solutions consiste à supprimer le dossier output sous project\app\build\et à reconstruire le projet pour le laisser fonctionner.

0
Zubair Akber