Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi 12.1 Android 14 und FTP (https://www.delphipraxis.net/216999-delphi-12-1-android-14-und-ftp.html)

Ulf346C 3. Apr 2025 15:47

Delphi 12.1 Android 14 und FTP
 
Hallo,

ich baue gerade um - von Delphi10.2 und Android 8 auf Delphi 12.1 und Android 14

eine Hürde an der ich gerade scheitere ist ein FTP Upload (... in mein lokales Netz)
Code:
  bild1 := TPath.Combine(TPath.GetSharedDocumentsPath, DateiName);
  Imagecontrol1.Bitmap.SaveToFile(bild1);
  idftp1.Host := dbf.dbserver;
  if not idFtp1.connected then idFtp1.connect();
  g1 := idftp1.size(DateiName);  // nachschauen ob der Dateiname schon existiert
  if g1 > 1 then idftp1.Delete(DateiName);

  idftp1.put(bild1, DateiName, true);
  idftp1.disconnect;
beim connect() ist Schluß
hat jemand einen Tip, was sich geändert hat?
Ich vermute es liegt am Andoid, das bin ich aber kein besonders großer Kenner

Danke
Ulf

zeras 3. Apr 2025 21:03

AW: Delphi 12.1 Android 14 und FTP
 
Ich kann deine Frage zwar nicht beantworten.
Aber bei der Zeile, ob die Datei schon existiert, bin ich nicht sicher, ob das 100%ig klappt?
Meines Wissens kann eine Datei auch Länge = 0 haben oder geht das bei FTP nicht? Damit würde die Abfrage nicht korrekt sein.

Delphi-Quellcode:
 g1 := idftp1.size(DateiName); // nachschauen ob der Dateiname schon existiert
  if g1 > 1 then idftp1.Delete(DateiName);

jaenicke 3. Apr 2025 22:37

AW: Delphi 12.1 Android 14 und FTP
 
Zitat:

Zitat von Ulf346C (Beitrag 1547787)
beim connect() ist Schluß

Was bedeutet das? Was passiert, was für ein Fehler kommt?

Ulf346C 4. Apr 2025 07:20

AW: Delphi 12.1 Android 14 und FTP
 
Zitat:

Zitat von zeras (Beitrag 1547796)
Ich kann deine Frage zwar nicht beantworten.
Aber bei der Zeile, ob die Datei schon existiert, bin ich nicht sicher, ob das 100%ig klappt?
Meines Wissens kann eine Datei auch Länge = 0 haben oder geht das bei FTP nicht? Damit würde die Abfrage nicht korrekt sein.

Das ist im Grunde richtig, in dem Fall werden Fotos abgelegt eine Datei mit Länge 0 wäre sowieso ungültig
Diese Methode erwies sieh am schnellsten, darum habe ich das so gemacht

Ulf346C 4. Apr 2025 07:21

AW: Delphi 12.1 Android 14 und FTP
 
Zitat:

Zitat von jaenicke (Beitrag 1547797)
Zitat:

Zitat von Ulf346C (Beitrag 1547787)
beim connect() ist Schluß

Was bedeutet das? Was passiert, was für ein Fehler kommt?

es kommt kein Fehler, die App stürzt ab

jaenicke 4. Apr 2025 07:40

AW: Delphi 12.1 Android 14 und FTP
 
Hast du in deiner echten Anwendung denn auch eine Fehlerbehandlung drin? In dem geposteten Code gibt es ja kein try..except oder ähnliches, deshalb frage ich.

Außerdem solltest du im Debugger auch etwas sehen.

Wenn das alles nicht hilft, bleibt noch, mit "adb logcat" die Logs auszulesen.

Ulf346C 4. Apr 2025 10:15

AW: Delphi 12.1 Android 14 und FTP
 
Danke erstmal
mit ADB kenne ich mich leider gar nicht aus (wie gesagt ich bin kein Android Kenner)

try/except und auch der Debugger helfen nicht weiter, es kommt keine Fehlermeldung

im Indy Quellcode nach einer Anweisung
Code:
      CheckForSocketError(Posix.SysSocket.connect(ASocket, LAddr, SizeOf(LAddrIPv4)));

jaenicke 4. Apr 2025 10:36

AW: Delphi 12.1 Android 14 und FTP
 
Zitat:

Zitat von Ulf346C (Beitrag 1547813)
try/except und auch der Debugger helfen nicht weiter, es kommt keine Fehlermeldung

Was passiert denn? Wird die Debugsitzung einfach abgebrochen und die App beendet? Oder bleibt das connect hängen und es geht nicht weiter?

Ulf346C 4. Apr 2025 10:42

AW: Delphi 12.1 Android 14 und FTP
 
es geht einfach nicht weiter
der Cursor steht auf der gezeigten Zeile und es geht nichts weiter bis ich irgendwann die Debugsitzung manuell abbreche

Rollo62 4. Apr 2025 10:49

AW: Delphi 12.1 Android 14 und FTP
 
Zitat:

Zitat von Ulf346C (Beitrag 1547813)
try/except und auch der Debugger helfen nicht weiter, es kommt keine Fehlermeldung

Es gibt bestimmte hardware oder OS-spezifische Exceptions, die sich mit einfachem TryExcept nicht abfangen lassen.
Dann kann es manchmal helfen, diese Stelle in einen zwei-schichtigen try-except Block zu packen, der das dann abfangen kann.
Womöglich besser noch iner einer separaten Methode.

Das Loggen ist aber auf jeden Fall sinnvoll.

jaenicke 4. Apr 2025 17:49

AW: Delphi 12.1 Android 14 und FTP
 
Wenn das im Connect einfach hängen bleibt, auch über übliche Timeouts hinaus, wird mehr loggen auch nicht viel bringen.

Siehst du vielleicht etwas, wenn du dir die Stacktraces anschaust, wenn du die Ausführung pausierst, wenn das hängt?

Trotzdem macht es Sinn, mit TIdLogEvent die Kommunikation abzugreifen, um zu sehen, was da vorher genau gesendet und empfangen wurde. Es gibt aber durchaus seltene Fälle, in denen Indy in eine Endlosschleife gerät.

Ansonsten bleibt nur, eine andere Komponente statt Indy zu versuchen, und wenn nur, damit man vielleicht eine Fehlermeldung bekommt, mit der man weiterkommt.

TurboMagic 4. Apr 2025 21:00

AW: Delphi 12.1 Android 14 und FTP
 
Lade dir doch mal Device Lens runter
https://delphiworlds.com/2023/02/dev...-0-0-released/
https://github.com/DelphiWorlds/DeviceLens

Damit kann man die Logmeldungen des Android Gerätes mitschneiden/anzeigen.
Manchmal bekommt man da dann Hinweise.

Kas Ob. 5. Apr 2025 08:55

AW: Delphi 12.1 Android 14 und FTP
 
I am in no way Android programmer, but i remember reading two case might be relevant to your case, though translation might be sending me in wrong direction:

1) Internet permission is not enough to connect to internet, i use Chinese android 14 and there is security application with firewall, i should explicitly allow using internet (or lan) per wifi or data.

2) Are you sure these internet operation (like connect ...) are not in the main thread as it is prohibited per Android policy, this can't be override, and you must switch all of these operation to different threads.


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