![]() |
Fehler: Java-Klasse JGoogleCloud-Messaging wurde nicht gefunden.
Hallo Zusammen,
ich habe eine frische Installation vom 10.2.3 Tokio und beschäftige mich gerade mit Push Notification über Google Cloud Messaging. Ich habe mehrere Beispiele die ich im Internet und auf YouTube gefunden habe ausprobiert. Alle scheitern an der gleichen Stelle, auch die Beispiele die Kinvey nutzen. Beim versuche eine Verbindung aufzubauen bekomme ich die Meldung am Android Device "Java-Klasse JGoogleCloud-Messaging wurde nicht gefunden" Somit gehe ich davon aus, mir fehlt etwas. Meine Installation ist anscheinend nicht komplette, denn die Fehlermeldung findet man im Netz nicht und die ganzen Beispiele funktionieren sofort. Hat jemand irgend eine Idee was fehlen könnte? Gruß Kostas |
AW: Fehler: Java-Klasse JGoogleCloud-Messaging wurde nicht gefunden.
Es fehlt ein JAR im 10.2.3 Release. Das liefern wir "die Tage" nach...
|
AW: Fehler: Java-Klasse JGoogleCloud-Messaging wurde nicht gefunden.
|
AW: Fehler: Java-Klasse JGoogleCloud-Messaging wurde nicht gefunden.
Ah... schon da. Danke, Mavarik!
|
AW: Fehler: Java-Klasse JGoogleCloud-Messaging wurde nicht gefunden.
Perfekt,
ich habe den Patch eingespielt und schon funktioniert es. Tausend Dank nochmals. Gruß Kostas |
AW: Fehler: Java-Klasse JGoogleCloud-Messaging wurde nicht gefunden.
Hallo Zusammen,
die Nachricht kommt noch nicht an. [Edit] Die Nachricht versende ich übrigens über console.firebase.google.com. Aus dem Video habe ich ersteinmal NUR das Android Projekt umgesetzt! Ich arbeite gerade dieses Beispiel durch: ![]() Die DeviceID wird nach Patch abgerufen. Der DeviceToken ist leer. Ich bekomme eine Exception "EJNIException mit der Meldung 'Java.io.IOException: MAIN_TREAD'" sobald ich versuche
Delphi-Quellcode:
zu setzen.
AServiceConnection.Active:=True;
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const Senderid: String = '383490665090'; var ADeviceID, ADeviceToken: string; begin APushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.GCM); APushService.AppProps[TPushService.TAppPropNames.GCMAppID]:=SenderID; AServiceConnection:=TPushServiceConnection.Create(APushService); AServiceConnection.Active:=True; <<< hier kommt die Exception AServiceConnection.OnChange := OnChange; AServiceConnection.OnReceiveNotification := OnReceiveNotificationEvent; ADeviceID := APushService.DeviceIDValue[TPushService.TDeviceIDNames.DeviceID]; ADeviceToken := APushService.DeviceTokenValue[TPushService.TDeviceTokenNames.DeviceToken]; Memo1.Lines.Add('DeviceID = ' + ADeviceID); Memo1.Lines.Add('DeviceToken = ' + ADeviceToken); end; Hat jemand eine Idee? Gruß Kostas |
AW: Fehler: Java-Klasse JGoogleCloud-Messaging wurde nicht gefunden.
Die Meldung könnte darauf hinweisen, dass der Code nicht im Hauptthread der App laufen darf (da er potentiell längere Zeit das UI blockiert).
Die Lösung wäre dann, den Code in einen Thread zu verlagern. |
AW: Fehler: Java-Klasse JGoogleCloud-Messaging wurde nicht gefunden.
Hallo Michael,
du hast Recht. Es funktioniert. Ich bekomme keine Fehlermeldung und die Nachricht kommt auch an wenn ich über firebaase notivication eine Nachricht sende direkt an das Token. Wenn ich in firebaase notivication als Ziel Nutzersegment(default) und meine App auswähle, wird die Nachricht nicht empfangen. Ich muss also direkt über das Token gehen. Aktuell ist es so, wenn die App aktiv ist, wird der Event
Delphi-Quellcode:
gefeuert. Ist sie nicht aktiv kommt die Meldung nur in das Notification-Center.
AServiceConnection.OnReceiveNotification
Klicke ich auf die Nachricht wird die App gestartet. Gibt es eine Möglichkeit die Notification vom Notification-Center nochmals "abzuholen" so das der Event gefeuert wird incl. der übergebenen Notification damit sie behandelt wird?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin TThread.CreateAnonymousThread(procedure () const Senderid: String = '383490665090'; var ADeviceID, ADeviceToken: string; begin APushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.GCM); APushService.AppProps[TPushService.TAppPropNames.GCMAppID]:=SenderID; AServiceConnection:=TPushServiceConnection.Create(APushService); AServiceConnection.Active:=True; AServiceConnection.OnChange := OnChange; AServiceConnection.OnReceiveNotification := OnReceiveNotificationEvent; ADeviceID := APushService.DeviceIDValue[TPushService.TDeviceIDNames.DeviceID]; ADeviceToken := APushService.DeviceTokenValue[TPushService.TDeviceTokenNames.DeviceToken]; TThread.Synchronize(TThread.CurrentThread, procedure() begin Memo1.Lines.Add('DeviceID = ' + ADeviceID); Memo1.Lines.Add('DeviceToken = ' + ADeviceToken); end); end).Start; end; Gruß Kostas |
AW: Fehler: Java-Klasse JGoogleCloud-Messaging wurde nicht gefunden.
Wird bei einem Klick auf die Nachricht, diese nicht an die App übergeben?
Ein Demo für beide Seiten wäre schön, dann kann man das nachvollziehen. Mavarik |
AW: Fehler: Java-Klasse JGoogleCloud-Messaging wurde nicht gefunden.
Wird der Thread mit TPushServiceConnection etc. erst beim Klick auf den Button gestartet oder schon ganz früh beim Start der App?
Rein intuitiv könnte Android ja nach dem Start zwar eine zuvor erhaltene Notification weiterleiten wollen, aber nicht können, weil die App zum entscheidenden Zeitpunkt noch keine TPushServiceConnection eingerichtet hat. Das hier geschieht möglicherweise: * Notification trifft ein (App läuft nicht) * Android startet die App * Sobald die App einen bestimmten Status (Aktivität wurde erzeugt) erreicht hat, prüft Android ob eine Cloudverbindung aufgebaut wurde, und falls ja, würde sie das Event (OnReceiveNotification) aufrufen und die Notification übergeben * "leider" wird die Cloudverbindung aber im Delphi Code erst später aufgebaut => Chance verpasst |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz