J'ai utilisé l'API Firebase Cloud Messaging (FCM) pour la notification Push dans Android. Lorsque j’ai mis en place ce travail parfait mais qu’il ne peut maintenant pas trouver le Service de Google Play.
l'erreur est:
FirebaseInstanceId: la synchronisation en arrière-plan a échoué: SERVICE_NOT_AVAILABLE,
S'il vous plaît aidez-moi comment résoudre. J'ai utiliser ci-dessous la dépendance dans le fichier Gradle.
dependencies {
compile files('libs/ksoap2-Android-Assembly-3.4.0-jar.jar')
compile 'com.Android.support:appcompat-v7:23.0.0'
compile files('libs/gson-2.2.4.jar')
compile files('libs/activation.jar')
compile files('libs/mail.jar')
compile files('libs/additionnal.jar')
compile 'com.Android.support:multidex:1.0.1'
compile 'com.facebook.Android:facebook-Android-sdk:4.14.0'
compile 'com.google.firebase:firebase-messaging:9.0.2'
compile('com.google.Android.gms:play-services:9.0.2') {
exclude group: "play-services-wallet"
exclude module: "play-services-wallet"
exclude group: "play-services-ads"
exclude module: "play-services-ads"
}
}
Merci d'avoir pris le temps de lire ceci.
Tu peux vérifier
google-service.json
par un nouveau, vous pouvez l'obtenir dans firebaseconsolVérifier - le service FireBaseInstanceId n'est pas enregistré
Après une longue lutte, j'ai trouvé la réponse. Si le service Google Play n'est pas en cours d'exécution, le journal FirebaseInstanceId background sync failed - SERVICE_NOT_AVAILABLE
est imprimé, afin que vous puissiez vérifier si votre service Google Play fonctionne correctement ou non.
Peut-être que cette information vous est utile!
le service doit être lié dans le Manifest.xml
<!-- Firebase InstanceId Service -->
<service
Android:name="eu.acme.service.FireBaseInstanceIdService"
Android:exported="false" >
<intent-filter>
<action Android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
alors on peut accéder à une seule méthode exposée (les autres noms sont obscurcis = non fiables):
package eu.acme.service;
import com.google.firebase.iid.FirebaseInstanceId;
import com.google.firebase.iid.FirebaseInstanceIdService;
public class FireBaseInstanceIdService extends FirebaseInstanceIdService {
@Override
@Android.support.annotation.WorkerThread
public void onTokenRefresh() {
/* obtain the current InstanceId token: */
String token = FirebaseInstanceId.getInstance().getToken();
}
}
on ne peut que contourner le problème, en ne le provoquant pas, par exemple. en n'ajoutant aucun auditeur AuthState tout en sachant qu'il n'y a pas de réseau actif présent, comme expliqué ici - comme il semble, on ne peut pas intercepter l'exception levée depuis la bibliothèque - ce qui peut être ignoré, car il se contente de se plaindre , qu'il n'y a pas de connectivité réseau.
com.google.Android.gms.iid et com.google.firebase.iid sont à peu près identiques.
Moi aussi j'ai eu le même problème, résolu par la seule option Clean Project en construction. J'espère que cela pourra aider n'importe qui ici.
Dans mon cas, j'ai redémarré mon PC et cela a fonctionné.
Je ne suis pas un expert, alors j'aurais peut-être couvert l'un des conseils mentionnés par mon approche
La solution la plus simple consiste à supprimer les dossiers bin et obj du répertoire .Droid.
.__ De cette façon, vous avez un départ propre à chaque fois.
Je devais désactiver mon VPN - espérons que cela aidera quelqu'un!
Je viens d'avoir ce problème. Dans mon cas, cela ne fonctionnait que lorsque j'arrêtais, fermais et ouvrais l'émulateur. Je n'ai pas fait d'autres changements.
Connectez votre mobile avec une connexion wifi différente avec un fournisseur de service différent . Cela semble bizarre mais vous pouvez l'essayer!
Dans mon cas, je viens de supprimer l'exécution instantanée des préférences d'Android Studio.