web-dev-qa-db-fra.com

Comment résoudre l'échec d'initialisation de l'API Firebase (Android + Firebase)

J'ai récemment eu besoin d'utiliser Google GCM dans mon projet. De son site web il est dit:

Firebase Cloud Messaging (FCM) est la nouvelle version de GCM. Il hérite l'infrastructure GCM fiable et évolutive, ainsi que de nouvelles fonctionnalités! Voir la FAQ pour en savoir plus. Si vous intégrez la messagerie dans une nouvelle application, commencer par FCM. Il est vivement recommandé aux utilisateurs de GCM de passer à FCM, afin de bénéficier des nouvelles fonctionnalités de la FCM, aujourd'hui et à l'avenir.

Afin de configurer une nouvelle application Firebase, j'ai suivi les instructions fournies sur le site officiel et fait ce qui suit:

  1. Création d'une nouvelle application Firebase dans la console Web et obtention de mon json - après avoir fourni le package correct de mon application;
  2. Dans le fichier de niveaux du projet de niveau supérieur, j'ai ajouté classpath 'com.google.gms:google-services:3.0.0' dans la section des dépendances;
  3. Dans le fichier de notes de mon module, j'ai ajouté: compile 'com.google.firebase:firebase-core:9.0.0' compile 'com.google.firebase:firebase-messaging:9.0.0' et dans la dernière ligne, j'ai ajouté: apply plugin: 'com.google.gms.google-services';

Les fichiers Gradle complets sont fournis ci-dessous:

Fichier de niveau supérieur:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:2.1.0'
        classpath 'com.neenbedankt.gradle.plugins:Android-apt:1.7'
        classpath 'com.google.gms:google-services:3.0.0'
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url "https://jitpack.io" }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

Fichier de classement du module:

apply plugin: 'com.Android.application'
apply plugin: 'com.neenbedankt.Android-apt'

Android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    dexOptions {
        javaMaxHeapSize "4g"
    }

    defaultConfig {
        applicationId "br.com.gogame"
        minSdkVersion 21
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
    useLibrary  'org.Apache.http.legacy'
}

dependencies {
    ...
    compile 'com.google.firebase:firebase-core:9.0.0'
    compile 'com.google.firebase:firebase-messaging:9.0.0'
    ...
}

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

Lorsque je lance mon application, je reçois ce stacktrace:

05-23 14:04:55.109 13368-13368/br.com.gogame I/art: Rejecting re-init on previously-failed class Java.lang.Class<com.google.Android.gms.internal.zzqq$zzd>
05-23 14:04:55.109 13368-13368/br.com.gogame I/art: Rejecting re-init on previously-failed class Java.lang.Class<com.google.Android.gms.internal.zzqq$zzd>
05-23 14:04:55.110 13368-13368/br.com.gogame I/art: Rejecting re-init on previously-failed class Java.lang.Class<com.google.Android.gms.internal.zzqq$zzc>
05-23 14:04:55.110 13368-13368/br.com.gogame I/art: Rejecting re-init on previously-failed class Java.lang.Class<com.google.Android.gms.internal.zzqq$zzc>
05-23 14:04:55.126 13368-13368/br.com.gogame E/FirebaseApp: Firebase API initialization failure.
                                                            Java.lang.reflect.InvocationTargetException
                                                                at Java.lang.reflect.Method.invoke(Native Method)
                                                                at com.google.firebase.FirebaseApp.zza(Unknown Source)
                                                                at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)
                                                                at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)
                                                                at com.google.firebase.FirebaseApp.zzbu(Unknown Source)
                                                                at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source)
                                                                at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1748)
                                                                at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1723)
                                                                at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
                                                                at Android.app.ActivityThread.installProvider(ActivityThread.Java:5174)
                                                                at Android.app.ActivityThread.installContentProviders(ActivityThread.Java:4769)
                                                                at Android.app.ActivityThread.handleBindApplication(ActivityThread.Java:4709)
                                                                at Android.app.ActivityThread.-wrap1(ActivityThread.Java)
                                                                at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1415)
                                                                at Android.os.Handler.dispatchMessage(Handler.Java:102)
                                                                at Android.os.Looper.loop(Looper.Java:148)
                                                                at Android.app.ActivityThread.main(ActivityThread.Java:5443)
                                                                at Java.lang.reflect.Method.invoke(Native Method)
                                                                at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:728)
                                                                at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:618)
                                                             Caused by: Java.lang.NoSuchMethodError: No static method zzy(Ljava/lang/Object;)Ljava/lang/Object; in class Lcom/google/Android/gms/common/internal/zzx; or its super classes (declaration of 'com.google.Android.gms.common.internal.zzx' appears in /data/app/br.com.gogame-2/base.apk:classes26.dex)
                                                                at com.google.Android.gms.measurement.internal.zzt.zzaU(Unknown Source)
                                                                at com.google.Android.gms.measurement.AppMeasurement.getInstance(Unknown Source)
                                                                at Java.lang.reflect.Method.invoke(Native Method) 
                                                                at com.google.firebase.FirebaseApp.zza(Unknown Source) 
                                                                at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) 
                                                                at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) 
                                                                at com.google.firebase.FirebaseApp.zzbu(Unknown Source) 
                                                                at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source) 
                                                                at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1748) 
                                                                at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1723) 
                                                                at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source) 
                                                                at Android.app.ActivityThread.installProvider(ActivityThread.Java:5174) 
                                                                at Android.app.ActivityThread.installContentProviders(ActivityThread.Java:4769) 
                                                                at Android.app.ActivityThread.handleBindApplication(ActivityThread.Java:4709) 
                                                                at Android.app.ActivityThread.-wrap1(ActivityThread.Java) 
                                                                at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1415) 
                                                                at Android.os.Handler.dispatchMessage(Handler.Java:102) 
                                                                at Android.os.Looper.loop(Looper.Java:148) 
                                                                at Android.app.ActivityThread.main(ActivityThread.Java:5443) 
                                                                at Java.lang.reflect.Method.invoke(Native Method) 
                                                                at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:728) 
                                                                at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:618) 
05-23 14:04:55.131 13368-13368/br.com.gogame I/FirebaseInitProvider: FirebaseApp initialization successful
05-23 14:04:55.133 13368-13368/br.com.gogame E/AndroidRuntime: FATAL EXCEPTION: main
                                                               Process: br.com.gogame, PID: 13368
                                                               Java.lang.NoSuchMethodError: No static method zzy(Ljava/lang/Object;)Ljava/lang/Object; in class Lcom/google/Android/gms/common/internal/zzx; or its super classes (declaration of 'com.google.Android.gms.common.internal.zzx' appears in /data/app/br.com.gogame-2/base.apk:classes26.dex)
                                                                   at com.google.Android.gms.measurement.internal.zzt.zzaU(Unknown Source)
                                                                   at com.google.Android.gms.measurement.AppMeasurementContentProvider.onCreate(Unknown Source)
                                                                   at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1748)
                                                                   at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1723)
                                                                   at Android.app.ActivityThread.installProvider(ActivityThread.Java:5174)
                                                                   at Android.app.ActivityThread.installContentProviders(ActivityThread.Java:4769)
                                                                   at Android.app.ActivityThread.handleBindApplication(ActivityThread.Java:4709)
                                                                   at Android.app.ActivityThread.-wrap1(ActivityThread.Java)
                                                                   at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1415)
                                                                   at Android.os.Handler.dispatchMessage(Handler.Java:102)
                                                                   at Android.os.Looper.loop(Looper.Java:148)
                                                                   at Android.app.ActivityThread.main(ActivityThread.Java:5443)
                                                                   at Java.lang.reflect.Method.invoke(Native Method)
                                                                   at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:728)
                                                                   at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:618)

Toute aide pour résoudre ce problème sera très appréciée! Cordialement

Après avoir beaucoup lutté, j’ai trouvé la cause de mon problème. En gros, j'avais deux modules de bibliothèques, qui m'appartenaient à moi, chacun important des versions différentes de com.Android.support:appcompat-v7.* et des services Google Play. Fait tous importer la même version et le problème est parti. 

J'ai rencontré la même erreur, résolue par la mise à niveau firebase-core:

dependencies {    
    compile 'com.google.firebase:firebase-core:9.0.2'
}
19
scoding

Attention à ce que toutes les dépendances aient la même version 

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.Android.support.test.espresso:espresso-core:2.2.2', 
    {
      exclude group: 'com.Android.support', module: 'support-annotations'
    })
    implementation 'com.Android.support:appcompat-v7:25.2.0'
    implementation 'com.Android.support:design:25.2.0'
    implementation 'com.Android.support:support-v4:25.2.0'
    implementation 'com.google.firebase:firebase-auth:10.0.1'
    implementation 'com.Android.support:cardview-v7:25.2.0'
    implementation 'com.google.firebase:firebase-database:10.0.1'
    testCompile 'junit:junit:4.12'
}
9
Harpreet Singh

J'ai fait face au même problème, mais après quelques recherches et développement, le problème se trouvait à Gradle, c.-à-d., Compilez "com.Android.support:support-v4:+", puis j'ai supprimé le + et remplacé la version actuelle, à savoir, compiler "com.Android.support:support-v4:23.1.0" puis il a commencé à fonctionner

3
sunil KV

Dans mon cas, le problème se produit parce que j'avais mis "apply plugin: 'com.google.gms.google-services" "dans les dépendances des modules build.grandle et de le mettre à la fin du fichier.

1
TmCrafz

J'ai eu le même problème, résolu par la mise à niveau vers play-services-auth: 10.0.1:

dependencies {
    ......
    //implementation 'com.google.Android.gms:play-services-auth:9.0.0'
    implementation 'com.google.Android.gms:play-services-auth:10.0.1'
    ....
}
1
User9527

Pour moi, une importation complètement indépendante a provoqué cette erreur compiler 'com.aurelhubert: ahbottomnavigation: 1.3.3' Quand je l'ai retiré, tout allait bien

1
Jaad Chacra

Vous pouvez vérifier les dépendances avec la commande gradle

./gradlew app:dependencies

Comme Edgar a dit, assurez-vous que toutes les bibliothèques de dépendances ont la même version . Sinon, vous pouvez exclure cette dépendance à

compile('your dependency') {
    exclude group: 'lib to be removed'
}

Et ajoutez cette dépendance vous-même.

0
Harish Rana

ajoutez compile 'com.google.Android.gms:play-services:9.0.0' dans votre fichier build.gradle au niveau de l'application

0
Shaktisinh Jadeja

Moi, après avoir lutté toute la nuit parce que la version de mes dépendances est la même. Après l’ajout de Firebase Analytics, lorsque j’ai modifié le code et que j’ai exécuté sur mon appareil, mon application est tombée en panne avec rejet de ré-init sur une classe précédemment défaillante, com.google.Android.gms ... exécutez à nouveau, alors cela a bien fonctionné mais sera écrasé à nouveau si je modifie le code.

Mon problème était causé par "useProguard false" par la suite de ce guide https://developer.Android.com/studio/build/shrink-code.html

    debug {
        minifyEnabled true
        useProguard false
        proguardFiles getDefaultProguardFile('proguard-Android.txt'),
                'proguard-rules.pro'
    }

mais je (exécution instantanée désactivée} donc supprimer "useProguard false" résolu mon problème.

    debug {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-Android.txt'),
                'proguard-rules.pro'
    }
0
BabyJust

Réponse plus complète pour les débutants. @ Edgar est correct, merci!

Erreur: "Echec d'initialisation de l'API Firebase" dans Logcat d'Android Monitor en raison d'une version de bibliothèque incompatible. Et cela peut être n'importe quelle bibliothèque avec laquelle vous compilez votre application dans la perspective Project: allez à: Your-app-directory/app/build.gradle

Dans mon cas, je dois faire correspondre cette version de 2 modules et cela a résolu ce message d'erreur:

implementation 'com.google.firebase:firebase-core:16.0.1'
implementation 'com.google.firebase:firebase-appindexing:16.0.1'

J'ai joint ici la capture d'écran pour que vous puissiez tout voir.

 enter image description here

0
Dung

Dans mon cas, j'ai oublié d'ajouter ceci dans App Level build

implementation 'com.google.firebase:firebase-messaging:9.6.0'

J'ai donc obtenu le FireBase fi rebase-api-initialization-failure

0