Je commence à utiliser la messagerie cloud Firebase.
Je n'ai que l'exemple de code du guide pour utiliser les notifications et les analyses. Si je n'installe pas les notifications Analytics, cela fonctionne très bien, mais lorsque j'ajoute Gradle à Analytics, j'ai cette erreur lorsque j'essaie d'envoyer une notification:
Java.lang.NoSuchMethodError: Pas de méthode statique zzUr () Landroid/content/Intent; dans la classe Lcom/google/firebase/iid/FirebaseInstanceIdInternalReceiver; ou ses super classes (la déclaration de "com.google.firebase.iid.FirebaseInstanceIdInternalReceiver" apparaît dans /data/app/com.myapp.newapp-2/base.apk) sur com.google.firebase.messaging.FirebaseMessagingService.zzz ( Source inconnue) sur com.google.firebase.iid.zzb.onStartCommand (source inconnue) sur Android.app.ActivityThread.handleServiceArgs (ActivityThread.Java:3316) sur Android.app.ActivityThread.access 2200 $ (ActivityThread.Java:177) sur Android.app.ActivityThread $ H.handleMessage (ActivityThread.Java:1547) sur Android.os.Handler.dispatchMessage (Handler.Java:102) sur Android.os.Looper.loop (Looper.Java:145) sur Android. app.ActivityThread.main (ActivityThread.Java:5951) sur Java.lang.reflect.Method.invoke (Native Method) sur Java.lang.reflect.Method.invoke (Method.Java:372) sur com.Android.internal. os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.Java:1400) sur com.Android.internal.os.ZygoteInit.main (ZygoteInit.Java:1195)
J'ai en gradle:
compile 'com.google.firebase:firebase-messaging:9.0.2'
compile 'com.google.firebase:firebase-core:9.2.0'
Mon MyFirebaseMessagingService:
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
// TODO(developer): Handle FCM messages here.
// If the application is in the foreground handle both data and notification messages here.
// Also if you intend on generating your own notifications as a result of a received FCM
// message, here is where that should be initiated. See sendNotification method below.
Log.d(TAG, "From: " + remoteMessage.getFrom());
Log.d(TAG, "Notification Message Body: " + remoteMessage.getNotification().getBody());
sendNotification(remoteMessage.getNotification().getBody());
}
private void sendNotification(String messageBody) {
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent, PendingIntent.FLAG_ONE_SHOT);
Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setContentText(messageBody)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setVibrate(new long[] { 1000, 1000, 1000, 1000, 1000 })
.setContentIntent(pendingIntent);
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0 /* ID of notification */, notificationBuilder.build());
}
Toute aide serait appréciée!
essaye ça:
ajouter
compile 'com.google.firebase:firebase-analytics:9.2.0'
et changez ceci:
compile 'com.google.firebase:firebase-messaging:9.0.2'
à CECI (même version sur tous)
compile 'com.google.firebase:firebase-messaging:9.2.0'
si cela ne fonctionne pas, mettez toutes les versions de firebase en 9.0.2 ou 9.0.0
J'ai eu le même problème, car d'autres ont dit que j'utilisais la même version pour toutes les bibliothèques firebase
, mais cela n'a pas fonctionné:
compile 'com.google.firebase:firebase-core:9.6.0'
compile 'com.google.firebase:firebase-messaging:9.6.0'
J'ai constaté que je dois utiliser la même version pour play-services
:
compile 'com.google.Android.gms:play-services-analytics:9.6.0'
compile 'com.google.Android.gms:play-services-base:9.6.0'
compile 'com.google.Android.gms:play-services-gcm:9.6.0'
L'utilisation de bibliothèques Firebase ou Google Play Service d'une version différente n'est pas prise en charge. Toutes les bibliothèques sont progressées ensemble, de sorte que le nom des méthodes/classes internes correspond à différentes bibliothèques. Lorsque vous utilisez des bibliothèques de différentes versions, vous verrez probablement des classes et des méthodes manquantes (comme vous le faites dans ce cas). Le mélange de bibliothèques de différentes versions n'est pas non plus testé. Même si vous exécutez l'application avec succès, ses choses ne fonctionneront probablement pas comme prévu.
Veuillez toujours utiliser des bibliothèques provenant exactement de la même version.
Pour moi, cela fonctionne. J'ai changé les versions.
compile 'com.google.Android.gms:play-services-maps:9.4.0'
compile 'com.google.firebase:firebase-core:9.4.0'
compile 'com.google.firebase:firebase-database:9.4.0'
Essayez de modifier les versions de Firebase dans build.gradle. Ça marche pour moi!
Les versions doivent être les mêmes:
compile 'com.google.firebase:firebase-analytics:9.2.0'
compile 'com.google.firebase:firebase-messaging:9.2.0'
compile 'com.google.firebase:firebase-core:9.2.0'
(Aux personnes qui espèrent la résolution tout en se référant aux réponses ci-dessus avec les derniers services Play et les bibliothèques Firebase)
À partir de la version 15 de tous les services Play et bibliothèques Firebase, les numéros de version adhèrent au schéma de gestion des versions sémantique.
Chaque dépendance Maven correspondant à com.google.Android.gms: play-services- * et com.google.firebase: firebase- * n'a plus besoin d'avoir le même numéro de version pour fonctionner correctement au moment de la construction et au moment de l'exécution.
Pour une explication plus détaillée, reportez-vous ici: annonce de la nouvelle version du SDK
J'espère que cela aidera les personnes utilisant la dernière version du SDK.
Aussi pour les personnes qui n'ont pas encore migré vers AndroidX et qui essaient de mettre à jour leurs SDK de base de services Firebase et Play à la dernière version qui est la 17.0.0, veuillez vous référer ci-dessous: Notes de publication du 17 juin 2019
Maintenant, pour vous faire savoir ce que j'ai fait pour résoudre mon problème, il fallait avoir les dépendances comme suit:
l'application ne fonctionnait pas avec les bibliothèques suivantes:
implementation 'com.google.firebase:firebase-core:16.0.9' implementation 'com.google.firebase:firebase-messaging:18.0.0' implementation 'com.google.firebase:firebase-analytics:16.5.0'
L'application a fonctionné avec les éléments suivants:
implementation 'com.google.Android.gms:play-services-base:16.1.0' implementation 'com.google.Android.gms:play-services-location:16.0.0' implementation 'com.google.Android.gms:play-services-analytics:16.0.8' implementation 'com.google.Android.gms:play-services-ads:17.2.1' implementation 'com.google.firebase:firebase-core:16.0.8' implementation 'com.google.firebase:firebase-messaging:17.3.3' implementation 'com.google.firebase:firebase-analytics:16.4.0'
Donc, fondamentalement, j'ai réduit ma version de messagerie Firebase avec des analyses et cela a fonctionné comme un charme ...