Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi App Tethering unter Android erzeugt Segmentation Fault (11) (https://www.delphipraxis.net/184128-app-tethering-unter-android-erzeugt-segmentation-fault-11-a.html)

Guido R. 28. Feb 2015 17:23

App Tethering unter Android erzeugt Segmentation Fault (11)
 
Hi !

Ich wollte mich mal ein wenig mit AppTethering beschäftigen und stoße da auf ein kleines Problem.
Ich erhalte beim Beenden der Android-App ein „Segmentation fault (11)“ gefolgt von einigen unschönen EAccessViolations.

Das Problem tritt bereits bei simpelster Konfiguration auf :
• Geräteübergreifende Anwendung
• TTetheringManager
• TTetheringAppProfile
Sobald ich TetheringAppProfile1.Manager mit dem TetheringManager1 verknüpfe tritt der Fehler beim Beenden der App auf.
Der Fehler scheint in TIdSocketHandle.Disconnect aufzutreten. Auch solche Versuche :

Delphi-Quellcode:
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
var I: Integer;
begin
  for I := TetheringManager1.PairedManagers.Count - 1 downto 0
   do TetheringManager1.UnPairManager(TetheringManager1.PairedManagers[I]);
end;

procedure TMainForm.FormDestroy(Sender: TObject);
begin
  TetheringAppProfile1.Enabled:=False;
  TetheringManager1.Enabled:=False;
end;
brachten keine Lösung.
Diese Fehler treten auch bei den von emba mitgelieferten Samples (z.B. MediaPlayer) auf.

Umgebung :
• Delphi XE7 Enterprise
• 2 versch. PCs (Intel & AMD)
• 2 versch. Android Endgeräte (Samsung Galaxy Note II, LG GPad 8.3)

Wie kann ich das Problem umgehen ?

Guido R.



R.I.P. Leonard Nimoy : 26.03.1931 - 27.02.2015

Guido R. 1. Mär 2015 21:24

AW: App Tethering unter Android erzeugt Segmentation Fault (11)
 
Offenbar kann man das Problem umgehen, indem man im OnFormClose-Event ein DisposeOf der beiden Tethering-Komponenten durchführt.

Delphi-Quellcode:
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 TetheringAppProfile1.DisposeOf;
 TetheringManager1.DisposeOf;
end;
Ein Free oder FreeAndNil reicht hier nicht aus.

LLAP
Guido R.

R.I.P. Leonard Nimoy : 26.03.1931 - 27.02.2015


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