AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Fehler: Java-Klasse JGoogleCloud-Messaging wurde nicht gefunden.
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler: Java-Klasse JGoogleCloud-Messaging wurde nicht gefunden.

Ein Thema von Kostas · begonnen am 28. Mär 2018 · letzter Beitrag vom 28. Mär 2018
Antwort Antwort
Seite 1 von 2  1 2      
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.058 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Fehler: Java-Klasse JGoogleCloud-Messaging wurde nicht gefunden.

  Alt 28. Mär 2018, 09:35
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
  Mit Zitat antworten Zitat
Benutzerbild von MEissing
MEissing

Registriert seit: 19. Jan 2005
Ort: Egelsbach
1.384 Beiträge
 
Delphi 12 Athens
 
#2

AW: Fehler: Java-Klasse JGoogleCloud-Messaging wurde nicht gefunden.

  Alt 28. Mär 2018, 09:49
Es fehlt ein JAR im 10.2.3 Release. Das liefern wir "die Tage" nach...
Matthias Eißing
cu://Matthias.Eißing.de [Embarcadero]
Kein Support per PN
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.126 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Fehler: Java-Klasse JGoogleCloud-Messaging wurde nicht gefunden.

  Alt 28. Mär 2018, 09:55
Das?

https://cc.embarcadero.com/Item/30831
  Mit Zitat antworten Zitat
Benutzerbild von MEissing
MEissing

Registriert seit: 19. Jan 2005
Ort: Egelsbach
1.384 Beiträge
 
Delphi 12 Athens
 
#4

AW: Fehler: Java-Klasse JGoogleCloud-Messaging wurde nicht gefunden.

  Alt 28. Mär 2018, 10:23
Ah... schon da. Danke, Mavarik!
Matthias Eißing
cu://Matthias.Eißing.de [Embarcadero]
Kein Support per PN
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.058 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Fehler: Java-Klasse JGoogleCloud-Messaging wurde nicht gefunden.

  Alt 28. Mär 2018, 10:26
Perfekt,

ich habe den Patch eingespielt und schon funktioniert es.

Tausend Dank nochmals.

Gruß Kostas
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.058 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Fehler: Java-Klasse JGoogleCloud-Messaging wurde nicht gefunden.

  Alt 28. Mär 2018, 11:23
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: https://www.youtube.com/watch?v=XE7dV5Devco

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 AServiceConnection.Active:=True; zu setzen.

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

Geändert von Kostas (28. Mär 2018 um 11:25 Uhr)
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#7

AW: Fehler: Java-Klasse JGoogleCloud-Messaging wurde nicht gefunden.

  Alt 28. Mär 2018, 11:44
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.
Michael Justin
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.058 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Fehler: Java-Klasse JGoogleCloud-Messaging wurde nicht gefunden.

  Alt 28. Mär 2018, 13:43
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 AServiceConnection.OnReceiveNotification gefeuert. Ist sie nicht aktiv kommt die Meldung nur in das Notification-Center.
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
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.126 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: Fehler: Java-Klasse JGoogleCloud-Messaging wurde nicht gefunden.

  Alt 28. Mär 2018, 14:34
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
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#10

AW: Fehler: Java-Klasse JGoogleCloud-Messaging wurde nicht gefunden.

  Alt 28. Mär 2018, 15:08
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
Michael Justin
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz