• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Keine GPS-Updates nach erstem Start der MM

MiK

Geoguru
Nach längeren Reparaturzeiten meines PDA, konnte ich gestern das erste Mal die aktuelle MM ausgiebiger testen. Dabei ist mir aufgefallen, dass nach dem Start der Karte, diese bei Positionsänderungen nicht aktualisiert wird. Nur ein Klick auf das GPS-Symbol brachte mich immer wieder zur aktuellen Position. Auch der Track wurde nicht eingezeichnet. Nach verlassen der MM, gab es auch im GotoPanel keine Positionsupdates mehr. Ich habe dann den GPS-Empfang gestoppt und wieder gestartet. Danach lief es im GotoPanel wieder. Und auch die MM lief danach wie erwartet.

Anscheinend wird beim ersten Start der Karte irgendetwas ausgelöst, so dass die Positionsupdates nicht mehr zur GUI kommen (der GPS-Empfang läuft weiter). Bei weiteren Starts der Karte passiert das aber nicht mehr.
 
OP
MiK

MiK

Geoguru
Ich konnte das Problem auch in Eclipse nachstellen. Bisher habe ich herausgefunden, dass dann ticked() in Navigate nicht mehr aufgerufen wird. Es wurde aber nicht stopDisplayTimer() aufgerufen. Weiter bin ich noch nicht.
 

arbor95

Geoguru
Hast du den Fehler schon genauer lokalisiert? Mir ist der auch schon aufgefallen. Hatte aber noch keine Musse mich drum zu kümmern.
 
OP
MiK

MiK

Geoguru
Ich habe es versucht, bin aber noch nicht weiter. Ich hatte den Verdacht, dass vielleicht das Navigate-Objekt noch einmal neu erzeugt wird. Das scheint aber nicht der Fall zu sein. Der tickerThread läuft am Anfang und nach dem ersten Karten-Start steht er. Irgendwas beim ersten Initialisieren der Karte scheint ihn anzuhalten.

Beim Debuggen bekomme ich bei Start der Karte auch öfter mal eine Runtime-Exception "Could not create native window!":
Code:
java.lang.RuntimeException: Could not create native window!
	at ewe.ui.Gui.setupNewWindow(Gui.java)
	at ewe.ui.Gui.execFrame(Gui.java)
	at ewe.ui.Form.doShowExec(Form.java)
	at ewe.ui.Form.exec(Form.java)
	at CacheWolf.navi.MovingMap.myExec(MovingMap.java:413)
	at CacheWolf.MainTab.SwitchToMovingMap(MainTab.java:358)
	at CacheWolf.navi.GotoPanel.switchToMovingMap(GotoPanel.java:314)
	at CacheWolf.navi.GotoPanel.onEvent(GotoPanel.java:377)
...

An dieser Stelle scheint der tickerThread aber noch zu laufen.
 
OP
MiK

MiK

Geoguru
araber95 schrieb:
den hatte ich auch schon mal . Das scheint ein ressourcen - problem zu sein.
Ja, mir ging es hauptsächlich um die Stelle und dass an der Stelle der tickerThread noch läuft.
 

pfeffer

Geowizard
kannst Du das Problem in Eclipse sicher reproduzieren?
Wie?

Ich war grad cachen und alles ging :)

Gruß,
Pfeffer.
 
OP
MiK

MiK

Geoguru
Genau so, wie ich es beschrieben habe. GotoPanel->GPS starten->Karte. Dann bekomme ich keine Updates mehr, da die Funktion ticked() in der Klasse Navigate nicht mehr aufgerufen wird.

Stoppe ich danach einmal das GPS und starte es wieder, läuft alles, wie es soll.
 
OP
MiK

MiK

Geoguru
Hatte gestern nicht mehr viel Zeit zum Weitersuchen. Aber dort hätte ich es wahrscheinlich nie gefunden... Danke! Wie hast Du das gefunden?
 

pfeffer

Geowizard
na, ganz einfach:
ticked() wird in einer Schleife von einer run() aufgerufen, die zwischendurch immer für 1 Sekunde sleep() macht und danach ticked() wieder aufruft. Also musste der Fehler darin liegen, dass ticked() nicht zurückkehrt. Da es funktioniert, wenn die MovingMap aus ist, gab es in ticked() nur einen Aufruf der MovingMap, die den Fehler verursacht. Da einfach in Eclipse mit F5 lang debugged und an der betreffenden Stelle wird eine Exception geworfen, was man beim Debuggen daran merkt, dass man plötzlich in $Ewe-Code ist ($window $Coroutine oder so).

Gruß,
Pfeffer.
 
OP
MiK

MiK

Geoguru
In diese Richtung hatte ich gar nicht gedacht... Sollte man dann nicht zur Sicherheit einen try-catch um den ticked-Aufruf in der Schleife machen?
 

pfeffer

Geowizard
doch und dann loggen.
Probierst Du das mal aus (ob es da auch tatsächlich gefangen wird) und committest es dann?

Gruß,
Pfeffer.
 
OP
MiK

MiK

Geoguru
pfeffer schrieb:
doch und dann loggen.
Probierst Du das mal aus (ob es da auch tatsächlich gefangen wird) und committest es dann?
Wenn ich heute Abend dran denke. Hier habe ich nicht die nötigen Mittel dazu.
 
Oben