![]() |
Beim Beenden der App erscheint: Project1 Angehalten
Hallo
Habe meine erste Android App geschrieben. Eigentlich funktioniert auch alles tiptop. Aber wenn ich die App beende (Also mit dem "Zurück Pfeil") kommt immer die Meldung: "Project1 angehalten". Weiss jemand was ich machen muss, damit diese Meldung beim beenden der App nicht erscheint? |
AW: Beim Beenden der App erscheint: Project1 Angehalten
Hallo,
die Frage wird dir so keiner beantworten können. Da hilft nur :glaskugel: Passiert das in Delphi auch und wo landet dann der Debugger? Steht evtl.etwas in dem Close-Event was dann knallt? Werden alle Objekte/ Listen usw. richtig frei gegeben? Verwendest du eine Datenbank? Du siehst, ohne genauere Infos kann man eine solch pauschale Frage nicht beantworten. |
AW: Beim Beenden der App erscheint: Project1 Angehalten
Hallo Juergen
Danke für die Antwort. Also im onClose habe ich nichts drinn. Im Delphi Android Emualtor funktioniert meine App leider nicht. Daher starte ich sie immer direkt auf meinem Handy (Galaxy S3). Da es eine recht simple App ist, hier mein Code:
Delphi-Quellcode:
unit TabbedTemplate;
interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.TabControl, FMX.StdCtrls, FMX.Gestures, FMX.Edit, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdFTP, FMX.Layouts, FMX.ListBox, FMX.Memo, FMX.Objects; type TTabbedForm = class(TForm) HeaderToolBar: TToolBar; ToolBarLabel: TLabel; TabControl1: TTabControl; TabItem1: TTabItem; TabItem2: TTabItem; GestureManager1: TGestureManager; Edit1: TEdit; Label1: TLabel; Label2: TLabel; Edit2: TEdit; CheckBox2: TCheckBox; Edit3: TEdit; Label3: TLabel; CheckBox3: TCheckBox; CheckBox4: TCheckBox; CheckBox1: TCheckBox; SpeedButton2: TSpeedButton; ListBox1: TListBox; IdFTP1: TIdFTP; IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL; ProgressBar1: TProgressBar; SpeedButton1: TSpeedButton; Memo1: TMemo; Timer1: TTimer; Image1: TImage; procedure FormCreate(Sender: TObject); procedure FormGesture(Sender: TObject; const EventInfo: TGestureEventInfo; var Handled: Boolean); procedure SpeedButton2Click(Sender: TObject); procedure CheckBox3Change(Sender: TObject); procedure CheckBox4Change(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { Private declarations } public { Public declarations } end; var TabbedForm: TTabbedForm; implementation {$R *.fmx} procedure TTabbedForm.CheckBox3Change(Sender: TObject); begin if checkbox3.IsChecked=true then checkbox4.IsChecked:=false; end; procedure TTabbedForm.CheckBox4Change(Sender: TObject); begin if checkbox4.IsChecked=true then checkbox3.IsChecked:=false; end; procedure TTabbedForm.FormCreate(Sender: TObject); begin { This defines the default active tab at runtime } TabControl1.ActiveTab := TabItem1; end; procedure TTabbedForm.FormGesture(Sender: TObject; const EventInfo: TGestureEventInfo; var Handled: Boolean); begin {$IFDEF ANDROID} case EventInfo.GestureID of sgiLeft: begin if TabControl1.ActiveTab <> TabControl1.Tabs[TabControl1.TabCount-1] then TabControl1.ActiveTab := TabControl1.Tabs[TabControl1.TabIndex+1]; Handled := True; end; sgiRight: begin if TabControl1.ActiveTab <> TabControl1.Tabs[0] then TabControl1.ActiveTab := TabControl1.Tabs[TabControl1.TabIndex-1]; Handled := True; end; end; {$ENDIF} end; procedure ListFileDir(Path: string; FileList: TStrings); var SR: TSearchRec; begin if FindFirst(Path + '*.*', faAnyFile, SR) = 0 then begin repeat if (SR.Attr <> faDirectory) then begin FileList.Add(SR.Name); end; until FindNext(SR) <> 0; FindClose(SR); end; end; procedure TTabbedForm.SpeedButton1Click(Sender: TObject); begin memo1.Lines.Clear; memo1.Lines.Add(edit1.Text); memo1.Lines.Add(edit2.Text); if checkbox2.IsChecked=true then memo1.Lines.Add('SSLon') else memo1.Lines.Add('SSLoff'); memo1.Lines.Add(edit3.Text); if checkbox3.IsChecked=true then memo1.Lines.Add('copy') else memo1.Lines.Add('move'); if checkbox1.IsChecked=true then memo1.Lines.Add('erstellen') else memo1.Lines.Add('direct'); memo1.Lines.SaveToFile(getHomePath + '/options.gee'); end; procedure TTabbedForm.SpeedButton2Click(Sender: TObject); var i: integer; begin ListFileDir('/sdcard/DCIM/camera/', ListBox1.Items); progressbar1.Max:=listbox1.Items.Count; idftp1.Host:=edit1.Text; idftp1.Port:=strtoint(edit2.Text); if checkbox2.IsChecked=true then begin idftp1.UseTLS:=utUseExplicitTLS; idftp1.IOHandler:= IdSSLIOHandlerSocketOpenSSL1; end else begin idftp1.UseTLS:=utNoTLSSupport; idftp1.iohandler:= nil; end; idftp1.Connect; idftp1.ChangeDir(edit3.Text); if checkbox1.IsChecked=true then begin idftp1.MakeDir(datetostr(now)); idftp1.ChangeDir(datetostr(now)); end; application.ProcessMessages; for I := 0 to listbox1.Items.count-1 do begin idftp1.Put('/sdcard/DCIM/camera/'+listbox1.Items[i], listbox1.Items[i]); progressbar1.Value:=i; application.ProcessMessages; end; if checkbox4.IsChecked=true then begin for I := 0 to listbox1.Items.Count-1 do begin deletefile('/sdcard/DCIM/camera/'+listbox1.Items[i]); end; end; end; procedure TTabbedForm.Timer1Timer(Sender: TObject); begin timer1.Enabled:=false; if fileexists(getHomePath + '/options.gee' ) then begin memo1.Lines.LoadFromFile(getHomePath + '/options.gee'); edit1.Text:=memo1.Lines[0]; edit2.Text:=memo1.Lines[1]; if memo1.Lines[2]='SSLon' then checkbox2.IsChecked:=true; edit3.Text:=memo1.Lines[3]; if memo1.Lines[4]='copy' then checkbox3.ischecked:=true else checkbox4.IsChecked:=true; if memo1.Lines[5]='erstellen' then checkbox1.IsChecked:=true; end else begin showmessage('Bitte alle Einstellungen setzen und speichern.'); end; end; end. |
AW: Beim Beenden der App erscheint: Project1 Angehalten
FYI: Zum Auflisten der Dateien gibt es eine Delphi Funktion:
var files: TStringDynArray; files := TDirectory.GetFiles(Folder); Kannst die Funktion also ändern: procedure ListFileDir(Path: string; FileList: TStrings); var Count: Integer; files: TStringDynArray; begin FileList := TStringlist.Create; files := TDirectory.GetFiles(Path); For Count := 0 to Length(Files)-1 do FileList.Add(Files[Count]); end; |
AW: Beim Beenden der App erscheint: Project1 Angehalten
Zitat:
Oder du mußt den Parameder in einen VAR OUT-Parameter ändern. |
AW: Beim Beenden der App erscheint: Project1 Angehalten
Stimmt :) Aber eigentlich kann er sich auch die gesamte Funktion sparen und .GetFiles direkt implementieren.
|
AW: Beim Beenden der App erscheint: Project1 Angehalten
Am Schönsten als Class Helper das originale GetFiles überladen.
|
AW: Beim Beenden der App erscheint: Project1 Angehalten
Also ich habe heute endlich herausgefunden was das App beim beenden "Abstürtzen" lässt (Project1 wurde angehalten)
Es ist die IdFTP Komponente!! Habe ein leeres Formular genommen. = Kein Absturz Sobal ich die IdFTP drauf setze, stürtzt das App beim beenden ab. Obwohl ich die Komponente nicht einmal benutze... (Kein Connect etc...) Was kann man da machen? :-) |
AW: Beim Beenden der App erscheint: Project1 Angehalten
Mmmh... Leere Anwendung mit TidFTP1 Komponente macht hier keine Probleme (Simulator, iPod Touch getestet)
Beispielprojekt? FormCreate? |
AW: Beim Beenden der App erscheint: Project1 Angehalten
Liste der Anhänge anzeigen (Anzahl: 3)
Hat jemand von euch zufälligerweise ein Samsung Handy? Wo er das mal testen könnte? Diese APK ist ein leeres Formular mit einer "leeren" idFTP Komponente drauf. Jedes mal wenn ich die Anwendung mit dem Back Pfeil "schliesse" kommt der Absturtz...
Liegts evt an meinem Handy? Muss den Fehler unbedingt finden :? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18: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