Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi Android: Externe Exception in FMX.Forms.TCommonCustomForm.MouseUp (https://www.delphipraxis.net/209187-android-externe-exception-fmx-forms-tcommoncustomform-mouseup.html)

philipp.hofmann 7. Nov 2021 11:09

Android: Externe Exception in FMX.Forms.TCommonCustomForm.MouseUp
 
Hi,

wie geht ihr mit einer Exception wie der folgenden um:

Code:
Externe Exception 88
At address: $0000007E3435CA60

Call stack:
libicTrainer.so          $0000007E2497762C Myerrorreporting.TgoExceptionReporter.GlobalGetExceptionStackInfo(TExceptionRecord*) + 124
libicTrainer.so          $0000007E23932034 Sysutils.Exception.RaisingException(TExceptionRecord*) + 52
libicTrainer.so          $0000007E2395D7C0 Sysutils.RaiseExceptObject(TExceptionRecord*) + 64
libicTrainer.so          $0000007E239122D0 _RaiseAtExcept(TObject*, Pointer) + 64
libicTrainer.so          $0000007E23931200 Internal.Excutils.SignalConverter(NativeUInt, NativeUInt, NativeUInt) + 36
libicTrainer.so          $0000007E23E57320 Fmx.Forms.TCommonCustomForm.MouseUp(Uitypes.TMouseButton, set of Classes.System_Classes__1, Single, Single, Boolean) + 676
libicTrainer.so          $0000007E23DA601C Fmx.Platform.Ui.Android.TWindowServiceAndroid.MouseUp(Fmx.Forms.TCommonCustomForm*, Uitypes.TMouseButton, set of Classes.System_Classes__1, Types.TPointF, Boolean) + 104
libicTrainer.so          $0000007E23DACFCC Fmx.Platform.Ui.Android.TAndroidMotionManager.ProcessMouseEvents() + 144
libicTrainer.so          $0000007E23DA6D08 Fmx.Platform.Ui.Android.TAndroidMotionManager.HandleMotionEvent(Androidapi.Jni.Graphicscontentviewtext.JMotionEvent) + 124
libicTrainer.so          $0000007E23DA30F8 Fmx.Platform.Ui.Android.TAndroidWindowHandle.TFormViewListener.onTouchEvent(Androidapi.Jni.Graphicscontentviewtext.JMotionEvent) + 52
                          $0000007E249812DC
libicTrainer.so          $0000007E239CD5B8 Rtti.Invoke(Pointer, array of Rtti.TValue, Typinfo.TCallConv, Typinfo.TTypeInfo*, Boolean, Boolean) + 560
libicTrainer.so          $0000007E239CE258 Rtti.TRttiInstanceMethodEx.DispatchInvoke(Rtti.TValue, Rtti.TValue const*, Integer) + 1268
libicTrainer.so          $0000007E239AB498 Rtti.TRttiMethod.Invoke(TObject*, Rtti.TValue const*, Integer) + 88
libicTrainer.so          $0000007E23A7B208 Androidapi.Jnibridge.dispatchToNative(JNINativeInterface**, Androidapi.Jni._JNIObject*, Androidapi.Jni._JNIObject*, Androidapi.Jni._JNIObject*, Int64) + 656
Einfach fangen in der Methode Fmx.Forms.TCommonCustomForm.MouseUp funtioniert leider nicht und ich kann den Fehler lokal nicht nachstellen. Er passiert nur bei einer signifikanten Anzahl der User.

Grüße, Philipp

Rollo62 7. Nov 2021 19:48

AW: Android: Externe Exception in FMX.Forms.TCommonCustomForm.MouseUp
 
Ich würde versuchen den Code in MouseUp erstmal mit
TThread.ForceQueue zeitlich etwas zu entkoppeln.
Womöglich ist bei Up irgendein Timing zu lang.

Es ist aber auch möglich dass das Problem ganz woanders liegt und nur hier aufpoppt.

philipp.hofmann 7. Nov 2021 21:45

AW: Android: Externe Exception in FMX.Forms.TCommonCustomForm.MouseUp
 
Generell: Ich benutze im Code nirgends ein MouseUp-Event. Den einzigen Code, den ich hier anfassen könnte, wäre der EMBT-Code.

Rollo62 8. Nov 2021 10:00

AW: Android: Externe Exception in FMX.Forms.TCommonCustomForm.MouseUp
 
Seltsam, aber solche mysteriösen Fehler kenne ich auch zur Genüge.
Die habe ich immer durch Zerlegen, Modularisieren und Umstrukturieren versucht einzugrenzen,
und das hat meistens geholfen, oder zumindest tauchte dann ab und zu an ganz anderer Stelle ein Problem auf,
das man fixen konnte.

Oft hat es schon gereicht einfach die Uses aufzuräumen oder anders anzuordnen,
von Interface nach Implementation da wo es geht,
besser aber noch große Units in mehrere Kleine zu zerlegen.
Das mache ich mittlerweile permanent, und acht direkt auf minimale Unit-Größen.
Ich vermute dass manchmal, je nachdem welche Units wann per Linker eingebunden werden, irgendwelche Timings durcheinandergebracht werden können, und dann kann es irgendwo anders krachen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:59 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