![]() |
mit XE7 erstellte App stürzt ab
Eine Frage an die Experten:
in einer App verwende ich JLocation zur Bestimmung der GPS-Position des Smartphones. Dies da die Ortungsfunktion des Betriebssystems selbst wesentlich weniger Strom verbraucht als die in Delphi verfügbare Positionsbestimmung. Eine kleine Anleitung zur Verwendung der der Ortungsfunktionen des Betriebssystems habe ich hier gefunden: ![]() Leider stürzt die App aber immer wieder und aus für mich nicht erklärbaren Gründen genau in dem Ereignis ab, das die Java-Klasse auslöst
Delphi-Quellcode:
Hat jemand von Euch einen Tipp wie ich den Absturz in dieser Prozedur verhindern kann?
procedure TStartup.onLocationChanged(location: JLocation);
Var WebStr, VRet : String; begin Try GPSPosX:=location.getLongitude; except GPSPosX:=0; End; Try GPSPosY:=location.getLatitude; except GPSPosY:=0; End; if (GPSPosX<>0) and (GPSPosY<>0) then Begin GPSInfoLabel.Text:='GPS ok'; GPSInfoLabel.Visible:=True; End; end; vielen Dank, Andreas |
AW: mit XE7 erstellte App stürzt ab
Prüf mal, ob das, was Du bekommst, auch zugewiesen (<> NIL) ist.
Und dann schaue, ob Du vielleicht aus einem Thread heraus aufgerufen wirst und Zugriffe auf die UI eventuell mit Synchronize() behandeln musst. Und dann schaue, ob Dein Event vielleicht mehrfach "gleichzeitig" aufgerufen werden kann. Dann müsstest Du das z.B. über eine CriticalSection absichern. |
AW: mit XE7 erstellte App stürzt ab
Und dann stelle auch sicher, dass Du die Sensorenfunktionen nur auf dem Gerät nutzt. Der Simulator unterstützt diese nämlich nicht.
|
AW: mit XE7 erstellte App stürzt ab
Und wirf doch mal einen Blick in die Geräte-Konsole. Android ist ja gerade bei Exceptions recht geschwätzig. Oft genug kommt dabei ein wertvoller Hinweis für die Fehlerursache heraus.
|
AW: mit XE7 erstellte App stürzt ab
Danke für die vielen Tipps.
Die Überprüfung ob location.getLongitude und .getLatitude nicht leer sind scheint eine Verbesserung gebracht zu haben. Es sieht so aus als ob die App nicht mehr so häufig abstürzen würde. Und wenn es dann doch passiert, dann erscheint "app wurde beendet" nicht mehr, sondern sie wird kommentarlos geschlossen. Ich deute das als Anzeichen dass der Fehler schön langsam eingekreist wird. Muss auf wärmere Tage warten und mich mit dem Entwickler-PC in eine Wiese setzen. Es ist ganz schön lästig immer am PC was zu tippen und dann mit dem Smartphone ins Freie zu laufen und auf ein GPS-Signal zu warten :? |
AW: mit XE7 erstellte App stürzt ab
Ich kenne jetzt den Wrapper nicht genau, aber da in Java auch ein String ein Object darstellt kann dieser auch null/nil sein.
Wenn der Wrapper das jetzt nicht richtig auf einen Leerstring mappt kannst du da schöne Fehler bekommen ... |
AW: mit XE7 erstellte App stürzt ab
Zitat:
|
AW: mit XE7 erstellte App stürzt ab
Zitat:
Verwendet man die in Android integrierte Ortungsfunktion so bleibt das Smartphone kühl und der Stromverbrauch steigt nicht wesentlich an. Dafür stürzt die App aber leider immer wieder ab :( |
AW: mit XE7 erstellte App stürzt ab
Vielleicht pollt der Delphi-Wrapper zu oft?
Bei meinem Lenovo-Tablet verbraucht deren eigene "Rotationserkennung" massig Strom, selbst wenn der Bildschirm aus ist. :wall: |
AW: mit XE7 erstellte App stürzt ab
bei Android und Delphi ist irgendwie alles mit Sensoren ein kleiner Taschenwärmer und Hilft, wenn der Akku mal schnell leer werden soll ....
Aber das ist bei vielen anderen Apps auch nicht anders :oops: Von Apple mag man halten was man will, seit ich wieder zu iPhone gewechselt habe, habe ich keinen Taschenwärmer mehr .... Z.B. dort muss man nicht pollen bei Sensoren und Positionen, dort kommt ein Callback (Ereigniss). z.B. bei den Wrappern von iCL (TMS) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:35 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