2
votes

E / FirebaseInstanceId: Erreur lors de la remise du message: ServiceIntent introuvable

J'ai d'abord ajouté FirebaseAnalytics à mon projet Android Unity, et cela fonctionne bien sur le test. Ensuite, lorsque j'ajoute FirebaseMessaging, crée l'application et envoie un message à partir de mon panneau FireBase, le message ne s'affichera pas sur l'appareil / l'émulateur et j'obtiens cette erreur dans Logcat:

E / FirebaseInstanceId: échec de la résolution du service d'intention cible, ignorant l'application du nom de classe

1722-4448 / system_process W / ActivityManager: impossible de démarrer le service Intent {act = com.google.firebase.MESSAGING_EVENT pkg = pack_name (a des extras)} U = 0: not found

E / FirebaseInstanceId: Erreur lors de la remise du message: ServiceIntent introuvable.

Il y a un sujet ​​ici qui n'a pas de réponse spécifique au problème.

J'ai suivi FireBase procédure pas à pas pour ajouter FirebaseMessaging.unitypackage à mon projet et d'après cela j'ai ajouté ces lignes à mon manifeste:

<!-- The MessagingUnityPlayerActivity is a class that extends
     UnityPlayerActivity to work around a known issue when receiving
     notification data payloads in the background. -->
 <activity android:name="com.google.firebase.MessagingUnityPlayerActivity" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
   <intent-filter>
     <action android:name="android.intent.action.MAIN" />
     <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
   <meta-data android:name="unityplayer.UnityActivity" android:value="true" />
 </activity>
 <service android:name="com.google.firebase.messaging.MessageForwardingService" android:exported="false" />

PS:

Après avoir ajouté le service mentionné dans la réponse @jeevashankar à mon manifeste, j'obtiens cette erreur lorsqu'un avis est arrivé:

E / BufferQueueProducer: requête [SurfaceView - pack_name / com.google.firebase.MessagingUnityPlayerActivity # 0]: BufferQueue a été abandonnée [SurfaceView - /com.google.firebase.MessagingUnityPlayerActivity#0] connect: BufferQueue a été abandonné E / BufferQueueProducer: [SurfaceView - nom_pack / com.google.firebase.MessagingUnityPlayerActivity # 0]

Mise à jour: J'ai testé FirebaseMessaging dans un projet Unity vide et l'ai testé sur un émulateur / appareil et cela fonctionne jusqu'à Android 7.1.1. Mais dans Android 8 (API 26) et plus, cette erreur et le message ne seront pas reçus:

system_process E / NotificationService: Aucun canal trouvé pour pkg =, channelId = null, id = 0, tag = campaign_collapse_key_4015583716848879920, opPkg =, callingUid = 10122, userId = 0, incomingUserId = 0, notificationUid = 10122, notification = Notification ( channel = null pri = 0 contentView = null vibrate = null sound = null defaults = 0x0 flags = 0x10 color = 0x00000000 vis = PRIVATE)


1 commentaires

Si vous testez sur Xiaomi, il est parfois impossible d'envoyer des messages, voir également cette réponse stackoverflow.com/questions/58109753/...


3 Réponses :


1
votes

Vérifiez ce lien et ajoutez un filtre d'intention avec l'action MESSAGING_EVENT dans le fichier de manifeste Service dans Android.

public class FireMsgService extends FirebaseMessagingService {


    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        super.onMessageReceived(remoteMessage);



            Log.v("Firebase MSG", ""+remoteMessage.getNotification().toString());



    }
  }

La classe FireMsgService étend la classe FirebaseMessagingService et dans la méthode onMessageReceived, vous recevrez des messages de notification.

<service android:name=".app.FireMsgService">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>

p>


1 commentaires

Merci, j'utilise Unity Engine pas natif Android. Lorsque j'ajoute le service mentionné au manifeste, j'obtiens une erreur que j'ai ajoutée à mon message



0
votes

J'ai trouvé la réponse. Vous devez importer des plugins Analytics & Messaging sans le dossier PlayServiceResolver. Ensuite, téléchargez le dernier package unity-jar-resolver unity depuis GitHub et importez-le dans votre Projet Unity. Après cela, appuyez simplement sur le bouton Force Resolve et obtenez un message d'opération réussie.


0 commentaires

3
votes

J'ai eu le même problème:

E / FirebaseInstanceId: Erreur lors de la remise du message: ServiceIntent introuvable

Après un certain temps, j'ai trouvé la solution en rendant le service exporté dans le manifeste

<service
    android:name=".MyMessagingService"
    android:exported="true" 
    tools:ignore="ExportedService" >

    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>

</service>


0 commentaires