![]() |
iOS - OK, Windows - OK, Android - crash
Hallo in die Runde,
ich bin etwas ratlos: habe eine App mit Firemonkey (Seit Delphi XE7 hochgezogen zu Delphi Seattle) erstellt, die ich für iOS, Windows und Android kompiliere. iOS und Windows laufen einwandfrei, Android stürzt aber bei vielen Kunden dauernd ab. Die App kommuniziert per Remote-DB (von TMS) mit einem Cloud-Server. Dies passiert in einem Thread. Als Datenbank ist SQLite im Einsatz. Die Abstürze sind offensichtlich Devicebezogen, da ich sie mit meinen Android-Geräten nicht nachvollziehen kann. Meine Frage daher in die Runde: Wer hat mir einen Tipp, wo ich schrauben kann. Ich weiss, die Frage ist sehr allgemein, aber ich kann es leider nicht genauer eingrenzen. Ich bin für jeden Tipp dankbar. PS: die App heisst PocketTime von der PocketRead GmbH (wenn es jemanden interessiert). Gruss Gebhard |
AW: iOS - OK, Windows - OK, Android - crash
Wenn die App im Playstore ist, werden ja Fehlerprotokolle erstellt. Bringen die dich weiter? Die kann man in der Google Play Developer Console anschauen.
|
AW: iOS - OK, Windows - OK, Android - crash
Android hat gegenüber iOS einige Eigenheiten...
Kennst Du die Stelle wo es passiert? |
AW: iOS - OK, Windows - OK, Android - crash
Nein eben nicht.
|
AW: iOS - OK, Windows - OK, Android - crash
Tja schade, ich hatte das
![]() Woran es lag ist mir bis heute nicht ganz klar, war aber dann auch weg. Trotzdem bleibt ein ungutes Gefühl, weil die AppEvents sich manchmal etwas komisch verhalten haben. Ich gehe mnal davon aus das es bei dir auch so beim Debug und bei den meisten Geräten funktioniert, nur bei einigen Testflight-Geräten eben nicht. Was ich bei mir gefunden hatte das der OutOfMemory Event geworfen wurde, aber nur auf eher neueren, größeren Geräten mit sowieso genug Memory. Wenn man dann nicht wirklich genug Speicher freistellt wird man abgewürgt, und die Gernze dafür liegt bei ca. 50MB (iOS) bei irgendwelchen DirtyMemory (kann man über Instruments ansehen wie es wächst). Bei Android werden die Daten wohl ähnlich sein. Nach meinen ersten Mobile-OutOfMemory Erlebnis habe ich meine App erstmal konsequent umgestellt, verschlankt, entkoppelt, in Hintergrundthreads verlagert, etc., etc. Weil ich wohl im Anfang doch zu sehr "Desktopmässig" drangegangen war. Ich gehe mal davon aus das du die Events schon beobachtet hast, und meine Fehler nicht gemacht hast. Wie gesagt, das war erstmal bei IOS, aber Android kann genauso seltsam reagieren, wenn du schon Serververbindung hast könntest du ja versuchen auch ein Fehler-Logging einzubauen. Ausser Memory sind natürlich blockende, längere Prozesse ein Problem, also alles immer schön transparent in Threads verfrachten, und bloss nicht den Hauptthread blocken. Rollo |
AW: iOS - OK, Windows - OK, Android - crash
Liste der Anhänge anzeigen (Anzahl: 1)
@bra
Danke für den Hinweis. hier eine Fehlermeldung:
Code:
Wem sagt das was?
Nativer Absturz bei /system/lib/libc.so
in /system/lib/libc.so (tgkill+12), /system/lib/libc.so (pthread_kill+48) *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** Build fingerprint: 'samsung/matissevewifixx/matissevewifi:4.4.4/KTU84P/T533XXU1AOG1:user/release-keys' Revision: '2' pid: 14453, tid: 16252, name: read.PocketTime >>> eu.pocketread.PocketTime <<< signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr -------- r0 00000000 r1 00003f7c r2 00000006 r3 00000000 r4 00000006 r5 00000000 r6 00003f7c r7 0000010c r8 8018d988 r9 8018d99c sl 8018d9a0 fp 8018d980 ip 7fbcfbf8 sp 8018d610 lr 40086245 pc 400951ec cpsr 000f0010 d0 74726f6261204d56 d1 617453657669746e d2 0064006500740075 d3 006100720054006c d4 00650072002e0073 d5 002e00620064006d d6 0061007400610064 d7 006c006500690066 d8 0000000000000000 d9 0000000000000000 d10 0000000000000000 d11 0000000000000000 d12 0000000000000000 d13 0000000000000000 d14 0000000000000000 d15 0000000000000000 d16 4d637e6c81dd0f8e d17 86e6aa1c69eb42be d18 40adeaa500000000 d19 0000000000000000 d20 4076d00000000000 d21 0000000000000000 d22 4085380000000000 d23 0000000000000000 d24 0018001600150014 d25 00190018001b001a d26 0000000000000000 d27 0000000000000000 d28 001f001e001c001a d29 0020001e001d001c d30 001b001b001b001b d31 0000000000000000 scr 80000010 backtrace: #00 pc 000221ec /system/lib/libc.so (tgkill+12) #01 pc 00013241 /system/lib/libc.so (pthread_kill+48) #02 pc 00013455 /system/lib/libc.so (raise+10) #03 pc 0001218b /system/lib/libc.so #04 pc 00021aa0 /system/lib/libc.so (abort+4) #05 pc 000498f7 /system/lib/libdvm.so (dvmAbort+78) #06 pc 0004e25f /system/lib/libdvm.so (dvmDecodeIndirectRef(Thread*, _jobject*)+146) #07 pc 00050aa1 /system/lib/libdvm.so #08 pc 007aacc7 /data/app-lib/eu.pocketread.PocketTime-1/libPocketTime.so (ExecJNI+238) code around pc: 400951cc e8bd00f0 e3700a01 912fff1e e2600000 400951dc ea006f1b e92d50f0 e3a07f43 ef000000 400951ec e8bd50f0 e3700a01 912fff1e e2600000 400951fc ea006f13 e92d50f0 e3a070ee ef000000 4009520c e8bd50f0 e3700a01 912fff1e e2600000 4009521c ea006f0b e1520003 8a00008c f5d1f040 4009522c e92d4001 e3520010 3a000024 e2603000 4009523c e213300f 0a00000e e0422003 e1b0cf83 4009524c 44d1e001 44c0e001 24d1c001 24d1e001 4009525c 24c0c001 24c0e001 e1b0ce83 aa000001 4009526c f4a1030d f480031d 3a000001 f421070d 4009527c f400071d e2522040 3a000006 f421020d 4009528c f421420d f5d1f100 e2522040 f400022d 4009529c f400422d 2afffff8 e2922020 3a000002 400952ac f421020d e2422020 f400022d e2822020 400952bc e3120010 0a000001 f4210a0d f4000a2d code around lr: 40086224 447b4b13 42b3e010 6a1ed10e 44784811 40086234 ec84f7fb ea0cf00d 46224631 efcef00e 40086244 d00a3001 e00b2400 2b00681b 480ad1eb 40086254 44782403 ec72f7fb f001e002 6804fa23 40086264 fa20f001 46206005 bf00bd70 0003b18e 40086274 0003b182 0003b17a 0003b156 bf7ef7ff 40086284 4a3e4b3d e92d447b b08b43f0 4606589c 40086294 6823460d 930946a1 fa04f001 8000f8d0 400862a4 d0482d00 f00f4628 280ffe9f d8444604 400862b4 ffe4f7ff d1064286 4629200f e8d6f00d 400862c4 d03c2800 482ee02e f7fb4478 482debb6 400862d4 e0154478 d11342b0 482b6a06 f7fb4478 400862e4 4a2aec2e 46332120 a801447a fb2ef013 400862f4 a8012101 fe4cf01a 46061c42 e011d104 40086304 28006800 e02cd1e6 46294630 f00d4622 40086314 1c43e912 d11e4607 f9c4f001 29046801 Sieht hier jemand einen Hinweis, wo ich ansetzen könnte? Bin für jeden Tipp dankbar. Gebhard |
AW: iOS - OK, Windows - OK, Android - crash
Hast du in deinem Thread eventuell Ausgaben, die den Mainthread blockieren? Genaues kann ich mit der Fehlermeldung leider nicht anfangen.
Wir haben momentan mit unserer App auch Probleme, allerdings unter iOS. Hier geht was bei der Hintergrund-Synchronisierung schief. :? |
AW: iOS - OK, Windows - OK, Android - crash
Dank eurer Hinweise auf den Thread habe ich genau dort den Fehler gefunden.
Im Execute wird an 2 Stellen ein Synchronize ausgeführt. Wegen einem "Schleifenfehler" wurde das eine Synchronize immer auch ausgeführt, wenn nur das andere hätte sollen. Interessanter weise spielt das bei Windows und bei iOS keine Rolle, bei Android kommt es aber bei einzelnen Devices zu Abstürzen. Das wiederum hängt vermutlich am Timing bei Android....usw.... Also wieder was gelernt: Immer sauberen Code schreiben 8-) Vielen Dank Gebhard |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:17 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