Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Android 6.0.1: IdTCPClient1.Connect bringt Segmentation fault (11) wenn kein Netz (https://www.delphipraxis.net/191198-android-6-0-1-idtcpclient1-connect-bringt-segmentation-fault-11-wenn-kein-netz.html)

wuff01 19. Dez 2016 12:08

Android 6.0.1: IdTCPClient1.Connect bringt Segmentation fault (11) wenn kein Netz
 
Hallo,

ich möchte prüfen, ob auf einem Android Gerät eine Netzwerkverbindung vorliegt. Sobald keine Netzwerkverbindung vorliegt, bringt IdTCPClient1.Connect eine Segmentation fault (11) Exception und beendet die Anwendung (trotz try except). Hat jemand einen Tipp, wie ich die Exception abfangen kann? Ich verwende XE7 und Android 6.0.1.



procedure TForm1.Button1Click(Sender: TObject);
begin
if CheckInternet then
ShowMessage('geht')
else
ShowMessage('geht nicht') ;
end;

function TForm1.CheckInternet: boolean;
begin
result := false;
try
IdTCPClient1.ReadTimeout := 2000;
IdTCPClient1.ConnectTimeout := 2000;
IdTCPClient1.Port := 80;
IdTCPClient1.Host := 'google.com';
IdTCPClient1.Connect;
IdTCPClient1.Disconnect;
result := true;
except
result := false;
end;
end;

mjustin 19. Dez 2016 12:24

AW: Android 6.0.1: IdTCPClient1.Connect bringt Segmentation fault (11) wenn kein Netz
 
Welche Indy-Version ist, die aus XE7 oder eine aktuelle?

Der schöne Günther 19. Dez 2016 12:26

AW: Android 6.0.1: IdTCPClient1.Connect bringt Segmentation fault (11) wenn kein Netz
 
Hast du irgendwelche Event-Handler auf dem
Delphi-Quellcode:
IdTCPClient1
gesetzt?

wuff01 19. Dez 2016 12:27

AW: Android 6.0.1: IdTCPClient1.Connect bringt Segmentation fault (11) wenn kein Netz
 
Hi,

es ist die Version 10.6.1.5182, welche bei XE7 dabei ist.

wuff01 19. Dez 2016 12:30

AW: Android 6.0.1: IdTCPClient1.Connect bringt Segmentation fault (11) wenn kein Netz
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1356574)
Hast du irgendwelche Event-Handler auf dem
Delphi-Quellcode:
IdTCPClient1
gesetzt?

nein, nur den blanken Indy TCP Client. Unter Windows geht's unter Android fliegt alles weg.

mjustin 19. Dez 2016 13:25

AW: Android 6.0.1: IdTCPClient1.Connect bringt Segmentation fault (11) wenn kein Netz
 
Zitat:

Zitat von wuff01 (Beitrag 1356575)
Hi,

es ist die Version 10.6.1.5182, welche bei XE7 dabei ist.

Die aktuellste Version (10.6.2 ...) behebt einige Fehler älterer Versionen. Sie muss nicht in der IDE als Komponenten-Package installiert werden sondern kann einfach in einem Projekt über dessen Suchpfad aktiviert werden. (Lib/Core, Lib/Protocols, Lib/System Verzeichnisse).

wuff01 19. Dez 2016 13:56

AW: Android 6.0.1: IdTCPClient1.Connect bringt Segmentation fault (11) wenn kein Netz
 
Zitat:

Zitat von mjustin (Beitrag 1356582)
Die aktuellste Version (10.6.2 ...) behebt einige Fehler älterer Versionen. Sie muss nicht in der IDE als Komponenten-Package installiert werden sondern kann einfach in einem Projekt über dessen Suchpfad aktiviert werden. (Lib/Core, Lib/Protocols, Lib/System Verzeichnisse).


Gibt es die nur hier https://svn.atozed.com:444/svn/Indy10 zum herunterladen?
Das wäre schade, weil die Seite grad Probleme hat ...

bra 19. Dez 2016 14:15

AW: Android 6.0.1: IdTCPClient1.Connect bringt Segmentation fault (11) wenn kein Netz
 
https://indy.fulgan.com/

mjustin 19. Dez 2016 14:16

AW: Android 6.0.1: IdTCPClient1.Connect bringt Segmentation fault (11) wenn kein Netz
 
Zitat:

Zitat von wuff01 (Beitrag 1356585)
Zitat:

Zitat von mjustin (Beitrag 1356582)
Die aktuellste Version (10.6.2 ...) behebt einige Fehler älterer Versionen. Sie muss nicht in der IDE als Komponenten-Package installiert werden sondern kann einfach in einem Projekt über dessen Suchpfad aktiviert werden. (Lib/Core, Lib/Protocols, Lib/System Verzeichnisse).


Gibt es die nur hier https://svn.atozed.com:444/svn/Indy10 zum herunterladen?
Das wäre schade, weil die Seite grad Probleme hat ...

Das ist die Adresse für das Subversion-Reporitory. Als ZIP bekommt man den aktuellen Stand (Schnappschuss) hier:
https://indy.fulgan.com/ZIP/

https://indy.fulgan.com/ZIP/Indy10_5388.zip

wuff01 19. Dez 2016 15:01

AW: Android 6.0.1: IdTCPClient1.Connect bringt Segmentation fault (11) wenn kein Netz
 
Vielen Dank für den Link. Ich habe die aktuelle Version heruntergeladen, in mein Projektverzeichnis gelegt und die Suchpfade gesetzt (Core, System, Protocols). Diese werden auch verwendet. Leider behebt es mein Problem nicht. Sobald kein Netz verfügbar ist, kommt Segmentation fault (11).

Der schöne Günther 19. Dez 2016 15:16

AW: Android 6.0.1: IdTCPClient1.Connect bringt Segmentation fault (11) wenn kein Netz
 
Wenn ich mein Android-Testgerät nicht verlegt hätte (irgendwie ist es weg) würde ich das ja gerne ausprobieren. Gibt es denn niemanden sonst mit XE7 und einem Android-Gerät?

Das dürfte doch leicht auszuprobieren sein. Was ist es bei dir für ein Gerät? Eigentlich sollte das ja egal sein, aber man weiß ja nie...

bra 19. Dez 2016 16:27

AW: Android 6.0.1: IdTCPClient1.Connect bringt Segmentation fault (11) wenn kein Netz
 
Ich glaube fast das Problem ist nicht Indy, sondern das alte Delphi. Ich vermute deine App stürzt auch bei einer beliebigen sonstigen Exception ab, z.B. einem Assert:

https://quality.embarcadero.com/browse/RSP-12634

wuff01 20. Dez 2016 06:27

AW: Android 6.0.1: IdTCPClient1.Connect bringt Segmentation fault (11) wenn kein Netz
 
Zitat:

Zitat von bra (Beitrag 1356613)
Ich glaube fast das Problem ist nicht Indy, sondern das alte Delphi. Ich vermute deine App stürzt auch bei einer beliebigen sonstigen Exception ab, z.B. einem Assert:

https://quality.embarcadero.com/browse/RSP-12634

Ja es sieht so aus. Ich habe die im RSP-12634 beschriebenen Schritte nachgestellt:

procedure TForm1.Button2Click(Sender: TObject);
begin
try
Assert(false, 'bla');
except
ShowMessage('exception ausgelöst ...') ;
end;
end;

Die Anwendung fliegt mit Segmentation fault (11) weg und es wird nie eine Exception ausgelöst. Danke für den Link und an alle für die Hilfe.

Rollo62 21. Dez 2016 06:58

AW: Android 6.0.1: IdTCPClient1.Connect bringt Segmentation fault (11) wenn kein Netz
 
Versuch besser das mit einer anonymen prozedur.

In Desktop sind die Funktionen synchron, unter mobile immer asynchron.
Da sollte man niemals die blockierenden Versionen nehmen ...

Rollo

MEissing 21. Dez 2016 09:11

AW: Android 6.0.1: IdTCPClient1.Connect bringt Segmentation fault (11) wenn kein Netz
 
Liste der Anhänge anzeigen (Anzahl: 2)
Man sollte immer im Hinterkopf haben, welche Version von Delphi mit welchem Android funktioniert:
http://docwiki.embarcadero.com/Platf...s/en/Main_Page
XE7 und Android 6.x ist zB nicht offiziell getestet.

Unter Berlin 10.1 (Update 2) funktioniert der Code problemlos (Nexus 4, Android 6.0.1):

Anhang 46341
Anhang 46340

Kurze, ehrliche Antwort: Bei mobiler Entwicklung sollte man immer das aktuellste Delphi einsetzen.


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