Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Segmentation fault (11) bei Android-App (https://www.delphipraxis.net/194853-segmentation-fault-11-bei-android-app.html)

sko1 16. Jan 2018 09:26

Segmentation fault (11) bei Android-App
 
Hallo,

ich komme nicht weiter, folgender Hintergrund:
In einer Android-App gibt es nur das Hauptformular, alle anderen sind nur als verfügbar im Projekt und werden bei Bedarf erzeugt und wieder zerstört.
Unter Windows absolut keine Probleme, auf einem Samsung Tab 6A allerdings funktioniert die erste Erzeugung immer, weitere Aufrufe (meist schon der zweite, aber auch erst beim 5. Mal bringt das Create des Unterformulars einen Segment fault (11) und ich komme beim Debuggen nicht an die Stelle wo es eigentlich knallt!

Hier noch ein paar Codeschnipsel:

Delphi-Quellcode:
//Hauptformular erzeugt Unterformular:
          Unterform := TUnterform.create(Nil);
          UnterForm.visible := True;
          //damit das Unterform weiß woher es erzeugt wurde
          UnterForm.FormBack := FormMain;
          self.visible := false;

//und im Unterform das Erzeugen und zerstören:
...
var
FormBack : TForm;
...
procedure TFormMaterial.FormCreate(Sender: TObject);
begin
  ....
end;

procedure TUnterForm.FormDestroy(Sender: TObject);
begin
  FormBack.visible := true;
  FormBack.Activate;
end;

procedure TUnterForm.FormKeyUp(Sender: TObject; var Key: Word;
  var KeyChar: Char; Shift: TShiftState);
begin
  if Key = vkHardwareBack then
  begin
    Key := 0;
    back();
  end;
end;

procedure TUnterForm.back();
begin
  self.Close;
end;

Hat jemand eine Idee wo ich ansetzen könnte?

Ciao
Stefan

sko1 17. Jan 2018 06:11

AW: Segmentation fault (11) bei Android-App
 
Hallo,

nach langem "Spielen" habe ich jetzt eine Vermutung:
Kann es sein dass unter Android das .Free oder .DisposeOf von im Code erzeugten Komponenten irgendwie verzögert ausgeführt wird?

Erzeuge ich mein Form ganz schnell hintereinander knallt es bereits beim zweiten Mal, lasse ich viel Zeit vergehen geht es auch mehrfach...

Ciao
Stefan

Rollo62 17. Jan 2018 06:44

AW: Segmentation fault (11) bei Android-App
 
Der Mobile ARC-Compiler verursacht ja das ganze Desaster und die nicht ideale Umsetzung vom Emba, so das Tricksereien mit Free/DisposeOf evtl. nötig werden.
http://www.delphipraxis.net/187990-p...unter-ios.html
http://www.delphipraxis.net/192714-a...entfernen.html
Desktop und Mobile sind zwei Welten, wo man sich ganz vorsichtig hintasten muss.

Unter Desktop macht Free "DisposeOf", unter Mobile macht Free "nichts"

Da gibt es aber schon einige Threads hier und im Netz, such mal nach ARC, Free, DisposeOf.

Rollo

sko1 17. Jan 2018 09:10

AW: Segmentation fault (11) bei Android-App
 
Danke für die Antwort, dann bin ich ja auf dem richtigen Weg und muss wahrscheinlich das Projekt daraufhin etwas aufräumen...

Ciao
Stefan

Rollo62 17. Jan 2018 09:17

AW: Segmentation fault (11) bei Android-App
 
Es gibt übrigens noch ein relativ Neues Buch zu dem ganzen Thema, steht noch auf meiner Agenda ...

Rollo


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz