![]() |
AW: Abstürze nach längerer Laufzeit
Zitat:
Kannst du mir auf die Sprünge helfen, was das bedeutet? Kann ich damit eine Prozedur anspringen, die beim Absturz beispielsweise Datum und Uhrzeit in eine Datei sichert? |
AW: Abstürze nach längerer Laufzeit
Ich denke eher, es geht darum dass die APP zwischendurch immer mal beendet werden muss oder auf Systemereignisse reagieren muss um nicht beendet zu werden.
|
AW: Abstürze nach längerer Laufzeit
Zitat:
Wunderlich ist nur, dass es nur eine Reklamation gibt, obwohl die APP über 100mal geladen wurde. Bei einem Kunden kann ich sagen, dass diese schon seit Wochen läuft und nicht abstürzt. Deshalb habe ich keinen Ansatzpunkt, wo ich anfangen soll zu suchen. |
AW: Abstürze nach längerer Laufzeit
Ich komme immer noch nicht weiter. Der eine Kunde berichtete wieder von einem Absturz.
Kann es vielleicht daran liegen, dass die APP über Tage dann immer mehr Speicher anfordert? Gibt es im Android auch so etwas wie einen Taskmanager, wo man sieht, wieviel Speicher die APP reserviert hat? Bei Windows kann man das ja im Taskmanager sehen. Das wäre vielleicht dann vielleicht ein Anfang, wo ich suchen kann. Die App, die ich unter Kontrolle habe, läuft nun schon seit Wochen ohne Probleme. |
AW: Abstürze nach längerer Laufzeit
Zitat:
Die Lifecycleevents geben Dir die Chance den laufenden Zustand der App zu sichern , z.b. in eine Datenbank und den Zustand aus dieser Datenbank wiederherzustellen wenn die App fortgesetzt wird. Android kann Deine App, wenn gerade keine ihrer Activities angezeigt wird (Foreground), jederzeit beenden oder pausieren. Sie ist dann zwar noch in den "Recent Apps" bzw. "Multitasking" Anzeige drin, aber keiner ihrer Threads ist mehr aktiv oder im RAM. Wenn man auf die Lifecycleevents nicht reagiert , weil man davon nichts weiß, kann das zu wirren Fehlersuchen führen.... Ich weiß nicht ob das bei Dir das problem ist. Aber so oder so kann es ein Problem werden...man muss sich um die Dinger kümmern. Zweite Frage: Verwendest Du die SQLite Datenbank von Android und wenn ja machst Du das richtig? |
AW: Abstürze nach längerer Laufzeit
Sorry, dass ich erst jetzt wieder antworte. Den Fehler bekomme ich nun auch auf einem Nexus7 hin. Das dauert aber in "Normalfall" zwischen 2 und mehreren Tagen.
Auf die Activities reagiere ich im Moment so:
Delphi-Quellcode:
Ich brauche keine Daten zu sichern. Deshalb habe ich result auf true gesetzt.
function Tftest.HandleAppEvent(AAppEvent: TApplicationEvent; AContext: TObject): Boolean;
ar StartupIntent: JIntent; s : String; begin Result := False; case AAppEvent of TApplicationEvent.FinishedLaunching: s := ('Finished Launching'); TApplicationEvent.BecameActive: s := ('Became Active'); TApplicationEvent.WillBecomeInactive: s := ('Will Become Inactive'); TApplicationEvent.EnteredBackground: s := ('Entered Background'); TApplicationEvent.WillBecomeForeground: s := ('Will Become Foreground'); TApplicationEvent.WillTerminate: s := ('Will Terminate'); TApplicationEvent.LowMemory: s := ('Low Memory'); TApplicationEvent.TimeChange: s := ('Time Change'); TApplicationEvent.OpenURL: s := ('Open URL'); else s := 'TApplicationEvent unknown'; end; Result := True; Zur Frage wegen der Datenbank. Ich lese nur den Kalender vom Tablett aus. Dabei hatte ich vergessen, den Cursor zu schließen. Das habe ich jetzt korrigiert, aber die APP hängt sich noch immer auf.
Delphi-Quellcode:
Habt ihr noch weitere Ideen?
if Assigned(Cursor) then begin
Cursor.close; end; Kann ich vielleicht das Log, dass ich dem Android Device Monitor sehe, auch irgendwie im Tablett sichern, da der Rechner nicht immer an sein kann? Ich habe mir zwar schon selber einiges geloggt, aber an die Daten im Device Monitor komme ich nicht ran. Vielleicht stehen da mehr Informationen drin, die mir helfen könnten. Wunderlich für mich ist, dass die APP Inactive wird und zur gleichen Zeit wieder Active. Es ist aber niemand an der APP gewesen.
Code:
Das passiert ca. alle 6 Stunden.
06.06.2022 18:00:22 Will Become Inactive
06.06.2022 18:00:22 Became Active
Code:
06.06.2022 18:00:22 Will Become Inactive
07.06.2022 00:10:45 Will Become Inactive 07.06.2022 06:33:33 Will Become Inactive 07.06.2022 12:10:08 Will Become Inactive 07.06.2022 18:34:54 Will Become Inactive |
AW: Abstürze nach längerer Laufzeit
Nun habe ich einen älteren Rechner mit ADB ausgestattet und logge seit Tagen, bis der Absturz kommt.
Das scheint nun die Ursache meines Problems zu sein. Aber was soll mir das sagen? Was ist diese globale Referenztabelle?
Code:
1. Tablett
message: 'java_vm_ext.cc:638] JNI ERROR (app bug): global reference table overflow (max=51200)global reference table dump:' 2. Tablett DEBUG : Abort message: 'art/runtime/indirect_reference_table.cc:115] JNI ERROR (app bug): global reference table overflow (max=51200)' |
AW: Abstürze nach längerer Laufzeit
Quasi ein Speicherleck :stupid:
aber das hätte dir die SuFu auch sbeantworten können. z.B. ![]() Du pfuschst nicht zufällig mit Pointer rum, oder mit vielen Threads, welche nicht richtig aufgeräumt werden. |
AW: Abstürze nach längerer Laufzeit
Zitat:
Ich habe eigentlich nur einen Thread, der einen Sound abspielt, damit das Hauptprogramm aber nicht hängenbleibt. Ansonsten läuft alles im Hauptprogramm und einem Timer. Wunderlich ist nur, dass die APP mit Android 11 nicht hängenbleibt. Vielleicht ist der der "maxwert" viel höher? Kann man den Wert der "global reference table" auslesen? Dann könnte ich viel eher sehen, wo was schiefläuft? Ansonsten dauert das in meinem Testprogramm 1-2 Tage, eher der Fehler auftritt. |
AW: Abstürze nach längerer Laufzeit
Hallo,
wenn Du dir den oberen Link durchliest, kommst Du hierhin ![]() Unterhalb der Fehler Meldung müssten die betroffenen Objekte stehen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:53 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