SignalR-integration in android studio
Benutze ich signalR-lib in mein Projekt. aber ich war nicht in der Lage zu kompilieren libs von https://github.com/SignalR/java-client auf meiner eigenen, ich fand Sie im internet. Aber wie es scheint, gibt es nicht die volle (WebsocketTransport fehlt)
Wenn ich kompilieren https://github.com/SignalR/java-client, bekomme ich zwei libs, und fügen Sie Sie zu meiner app.gradle -
compile files ('libs/signalr-client-sdk.jar')
compile files ('libs/signalr-client-sdk-android.jar')
Progects bauen suckesfully, butwhen ich durch das drücken der run - es schlägt fehl.
Hier ist die stack-trace -
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)
at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)
at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
at com.android.dx.command.dexer.Main.processClass(Main.java:704)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
at com.android.dx.command.dexer.Main.access$300(Main.java:83)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:632)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
...while parsing microsoft/aspnet/signalr/client/Action.class
1 Fehler; Abbruch
Error:Execution failed for task ':app:preDexDebug'.
com.android.ide.common.Prozess.ProcessException: org.gradle.Prozess.intern.ExecException: Prozess 'Befehl 'C:\Program Files\Java\jdk1.8.0_45\bin\java.exe" finished with non-zero exit-Wert 1
Ich weiß nicht, was zu tun ist. Ich habe sogar versucht zu kompilieren Gabeln von diesem Projekt, aber haben das gleiche Ergebnis, der gleiche Fehler. Brauche jede Hilfe, vielen Dank!
UPDATE
in meiner Anwendung Klasse, ich habe
Platform.loadPlatformComponent(new AndroidPlatformComponent());
in meiner app.gradle:
compile files ('libs/gson-2.2.2.jar')
compile files ('libs/signalr-client-sdk.jar')
compile files ('libs/signalr-client-sdk-android.jar')
in meinem code, den ich verwenden
connection.start(new ServerSentEventsTransport(connection.getLogger())).get();
Außerdem erstelle ich viele hubs auf dieser Verbindung, nad Methoden aufrufen. Alles funktioniert, aber die Verbindung immer verschwindet, wenn ich nichts mit dem Gerät mehr als 30 Sekunden. Und ich habe keine Rückrufe, dass die Verbindung verloren\disconected oder irgendetwas wie das - ich-log-all dieses Zeug. Aber ich denke, dass es passieren kann, weil ich ziemlich alten libs, die ich gegoogelt - wie ich schon erwähnt, in dieser Frage habe ich nicht menaged zu bauen signalR-Projekt zu erhalten, neuere libs
- Poste deinen code pls
- welchen code genau brauchen Sie? gradle-Datei?
- Den code, wie Sie Sie nennen/verwenden, SignalR in Ihrem Android-Projekt.
- Sie können sich mit diesem link stackoverflow.com/questions/32288357/...
- aktualisiert answeir
- Werfen Sie einen Blick auf meine Antwort 🙂
- Sieht meine Antwort für Ihre Frage oder nicht?
- Nein, ich verwendet, ziemlich gleichen Ansatz, und ich noch einen Wackelkontakt, wie ich schrieb in den update
- Meinst du damit, dass Ihre app erfolgreich gearbeitet, aber manchmal ist die Verbindung zwischen it-und server-app verloren?
- scheint, wie ich gefunden habe, 2 Fehler und machen es Arbeit, noch in der Testphase. Ich habe stürzt in regelmäßigen Abständen in WebSocketTransport, da erhielt ich zu lange Nachricht - und es spaltet sich in zwei Teile und der zweite Teil war ',' ! Und das ist die Scheiße! SignalR fehl, und rufen Sie für die Verbindung zu trennen.
- Der zweite Fehler ist, dass websokets nicht geschafft richtig einzustellen-Header. Ich habe das getan, manuell. vielleicht, wenn ich fix und lassen für ein paar Tage, ich Schreibe voll answeir
- Sieht aus wie Android SignalR nicht unterstützt WebSocketTransport
- mit den 2 Updates, es funktioniert, irgendwie , aber immer noch buggy
- Buggy??? Sorry, ich nicht verstehen, dieses Wort 🙂
- haben Sie versucht, LongPolling noch?
- buggy - es ist die version mit einigen bugs 🙂 LongPolling und ServerSendEvents scheint zu funktionieren, nicht so schnell, wie Sie WebSockets. Also ich brauche websockets in meiner app
- Ich habe nicht mal versucht Websocket erfolgreich mit SignalR für Android 🙂
- Aber für mich SSE-transport hat einen Fehler zu - ich "lockere" Verbindung, wenn ich das nicht tun alle Operationen für mehr als eine minute. Verbindung ist aber tehnically noch existiert, aber ich habe in logs auf server - kommt gar nichts an, leider. Mit websockets ich nicht havbe solche Fehler
- IMO, Sie können versuchen, LongPolling.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist mein Arbeits-basic-code, hoffe, das hilft!
Aktivität:
CustomMessage Klasse:
Service
Leben? können Sie bitte Ihre Importe? Android Studio kann es, und meine refs, signalr sind ok, weil ich in der Lage bin, zu kompilieren mit einem ref zuAndroidPlatformComponent
java.util.concurrent.ExecutionException: microsoft.aspnet.signalr.client.transport.NegotiationException: There was a problem in the negotiation with the server
- ich bin zwingen SSE auf die Verbindung überServerSentEventsTransport
- die signalr-Endpunkt ist in Ordnung, wie ich bin mit einem javascript-client, um eine Verbindung herzustellen erfolgreich. irgendwelche Ideen?NUR JEMANDEM HELFEN, DER FESTSTECKT WIE MICH.
War ich versucht, meine SingalR zu arbeiten.
Ich folgte die Antwort gegeben, aber der service war nicht feuern.
Dies war mein erstes Projekt, die Implementierung einer service wie SignalRService.
Also wusste ich nicht.
Fügte ich
<service>
Eintrag in mein manifest-Datei dann alles angefangen zu arbeiten.Vielen Dank BNK