0

Ich versuche, die Push-Benachrichtigung über die neue Firebase GCM-Implementierung zu implementieren. Es ist ganz einfach:Firebase. java.lang.RuntimeException: Empfänger kann nicht instanziiert werden com.google.android.gms.gcm.GcmReceiver: java.lang.ClassNotFoundException:

<service 
    android:name=".services.MyMessagingService"> 
    <intent-filter> 
     <action android:name="com.google.firebase.MESSAGING_EVENT"/> 
    </intent-filter> 
</service> 
<service 
    android:name=".services.MyInstanceIDService"> 
    <intent-filter> 
     <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/> 
    </intent-filter> 
</service> 

Aber diese Dienste sind auch nicht notwendig. Natürlich habe ich gradle Plugin für die Codegenerierung von GCM Klassen am Ende des build.gradle eingefügt: Plugin anwenden: ‚com.google.gms.google-Dienstleistungen‘ und dies auch gradle Datei im Projekt haben:

dependencies { 
    classpath 'com.google.gms:google-services:3.1.0' 
} 

Wenn ich app starte und versuche, eine Benachrichtigung von Firebase an die Anwendung zu senden, stürzt es mit einem seltsamen Reflexionsfehler ab.

java.lang.RuntimeException: Unable to instantiate receiver com.google.android.gms.gcm.GcmReceiver: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.gcm.GcmReceiver" 

Ich weiß nicht einmal, wie man diesen Fehler debuggt.

+0

hast du es geschafft, dieses Problem zu beheben @ eugene-verichev? – Reinherd

+0

ja, jetzt habe ich Antwort –

Antwort

0

Ich fand heraus, dass der Absturz nicht von Firebase war, es war von der Bibliothek, die auf der alten Implementierung von Firebase beruhen. In meinem Fall war das "com.yandex.android:mobmetricapushlib:$version". Und mit 'com.google.firebase: firebase-messaging: $ project.ext.google_play_services_version' wird es zum Absturz kommen. Ich entschied mich, noch keine neuen Firebase-Bibliotheken zu verwenden und implementierte sie mit der gcm-Bibliothek.

+0

geschrieben Danke für die Antwort @Eugene. Du hast vollkommen recht. Ich habe es auch gefunden. Ich war von einer Bibliothek namens Intercom betroffen. Aber ich hatte Glück und Intercom hatte auch die FCM-Version! – Reinherd

Verwandte Themen