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:
classpath 'com.google.gms:google-services:3.0.0'
dans la section des dépendances;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'
}
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'
}
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
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.
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'
....
}
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
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.
ajoutez compile 'com.google.Android.gms:play-services:9.0.0'
dans votre fichier build.gradle au niveau de l'application
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'
}
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.
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