Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi App hängt nach vielen Stunden (https://www.delphipraxis.net/187770-app-haengt-nach-vielen-stunden.html)

zeras 1. Jan 2016 16:55

App hängt nach vielen Stunden
 
Hallo,

ich habe ein App, die nach vielen Stunden blockiert. Sie läßt sich nicht mehr bedienen. An einem Tablet kommt noch die Info, dass die App nicht mehr funktioniert. Bei einen anderen Tablet hängt sich alles komplett auf und man muss aus/einschalten.
Helfen da vielleicht die Infos, die über den Android Debug Monitor kommen würden?
Wie gesagt, es kann bis zu einem Tag dauern, bis das Problem kommt. Das Tablet muss aber an bleiben.

hoika 1. Jan 2016 16:58

AW: App hängt nach vielen Stunden
 
Hallo,
hängt nur die App oder auch alles andere?
Schleichendes MemLeak?


Heiko

zeras 1. Jan 2016 17:04

AW: App hängt nach vielen Stunden
 
Zitat:

Zitat von hoika (Beitrag 1325805)
Hallo,
hängt nur die App oder auch alles andere?
Schleichendes MemLeak?
Heiko

Wie gesagt, bei einem Tablet mit einem 4.2er Stand hängt das Tablet voll und ist nur durch längeres Drücken des Einschalters aus/einschaltbar.
Bei dem anderen Tablet mit 4.4 kommt nur die Meldung, dass die App nicht mehr funktioniert. Ich meine, dass ich dann die App einfach wieder starten konnte.

zeras 3. Jan 2016 14:07

AW: App hängt nach vielen Stunden
 
Ich meine, dass ich den Fehler im USB Log sehen konnte.
Aber anfangen kann ich damit nichts.
Hier habe ich nur etwas von JNI Error gefunden.
Hat jemand eine Idee?
Ich habe noch weitere Daten von davor und danach. Wenn diese von Interesse sein sollten.
Wenn ich im Monitor von Android nach Memory usage schaue, dann wird dieser nicht weniger, was man bei einem Speicherleck doch befürchten würde. Oder?

01-02 20:17:39.218: E/dalvikvm(15123): JNI ERROR (app bug): global reference table overflow (max=51200)
01-02 20:17:39.218: W/dalvikvm(15123): JNI global reference table (0x66f26b50) dump:
01-02 20:17:39.218: W/dalvikvm(15123): Last 10 entries (of 51200):
01-02 20:17:39.218: W/dalvikvm(15123): 51199: 0x413ae670 com.android.internal.policy.impl.PhoneWindow
01-02 20:17:39.218: W/dalvikvm(15123): 51198: 0x413adc88 com.embarcadero.firemonkey.FMXNativeActivity
01-02 20:17:39.218: W/dalvikvm(15123): 51197: 0x413adc88 com.embarcadero.firemonkey.FMXNativeActivity
01-02 20:17:39.218: W/dalvikvm(15123): 51196: 0x4147e3d8 $Proxy1
01-02 20:17:39.218: W/dalvikvm(15123): 51195: 0x413adc88 com.embarcadero.firemonkey.FMXNativeActivity
01-02 20:17:39.218: W/dalvikvm(15123): 51194: 0x414cd378 $Proxy1
01-02 20:17:39.218: W/dalvikvm(15123): 51193: 0x413adc88 com.embarcadero.firemonkey.FMXNativeActivity
01-02 20:17:39.218: W/dalvikvm(15123): 51192: 0x4147cd78 $Proxy1
01-02 20:17:39.218: W/dalvikvm(15123): 51191: 0x413adc88 com.embarcadero.firemonkey.FMXNativeActivity
01-02 20:17:39.218: W/dalvikvm(15123): 51190: 0x414d0398 $Proxy1

Bjoerk 4. Jan 2016 11:24

AW: App hängt nach vielen Stunden
 
Code:
01-02 20:17:39.218: E/dalvikvm(15123): JNI ERROR (app bug): global reference table overflow (max=51200)
Was ist denn dieses JNI? Da scheint ein Maximalwert von 51200 (Einträgen?) überschritten zu werden?

mkinzler 4. Jan 2016 11:36

AW: App hängt nach vielen Stunden
 
JNI (Java Native Interface) ist der Mechanismus mit dem das Java-Hauptprogramm mit der Prozessor-nativem Bibliothek ( in Delphi erstelltes Programm) kommuniziert.

mjustin 4. Jan 2016 12:07

AW: App hängt nach vielen Stunden
 
Zitat:

Zitat von Bjoerk (Beitrag 1325961)
Code:
01-02 20:17:39.218: E/dalvikvm(15123): JNI ERROR (app bug): global reference table overflow (max=51200)
Was ist denn dieses JNI? Da scheint ein Maximalwert von 51200 (Einträgen?) überschritten zu werden?

Diese Fehlermeldung und Wege zur Behebung werden beschrieben in http://stackoverflow.com/questions/9...ow-max-512-jni

Macht die App etwas Besonderes? Kann man das Problem mit einer "minimalen" App (leere Form) reproduzieren? Falls nein, würde ich so lange Code des 'echten' Programms der minimalen App hinzufügen bis das Problem auftritt. Kann aber bei einer so langen global reference table lange dauern. Idee: kann man die Größe der global reference table auf einen kleineren Wert setzen? (512 scheint Default zu sein, bei FMX hat man anscheinen den Defaultwert mal 100 gewählt)

Mavarik 4. Jan 2016 17:48

AW: App hängt nach vielen Stunden
 
Aber welche 51xxx Referenzen stehen den in der Tabelle?

zeras 4. Jan 2016 18:39

AW: App hängt nach vielen Stunden
 
Zitat:

Zitat von mjustin (Beitrag 1325964)
Was ist denn dieses JNI? Da scheint ein Maximalwert von 51200 (Einträgen?) überschritten zu werden?

Diese Fehlermeldung und Wege zur Behebung werden beschrieben in http://stackoverflow.com/questions/9...ow-max-512-jni

Danke, werde ich mir anschauen.

Zitat:

Zitat von mjustin (Beitrag 1325964)

Macht die App etwas Besonderes?

Es werden pro Minute die Kalenderdaten ausgelesen und jede Sekunde etwas auf einen Canvas gemalt. Vielleicht hängt da irgendwas. Aber an der Auslastung der CPU kann ich nichts sehen über den Android Monitor. Ich habe immer noch über 70% idle, wenn das etwas aussagen würde. Auch bei Memory usage habe ich noch über 75% frei.

Zitat:

Zitat von mjustin (Beitrag 1325964)
Kann man das Problem mit einer "minimalen" App (leere Form) reproduzieren? Falls nein, würde ich so lange Code des 'echten' Programms der minimalen App hinzufügen bis das Problem auftritt. Kann aber bei einer so langen global reference table lange dauern. Idee: kann man die Größe der global reference table auf einen kleineren Wert setzen? (512 scheint Default zu sein, bei FMX hat man anscheinen den Defaultwert mal 100 gewählt)


Wenn ich nichts finde, muss ich diese Methode anwenden.

Zitat:

Zitat von Mavarik (Beitrag 1325995)
Aber welche 51xxx Referenzen stehen den in der Tabelle?

Das kann ich mir auch nicht erklären, wie ich auf die 51000 Einträge kommen soll.
Vielleicht kann man diesen Wert abfragen und dann könnte ich mir vielleicht einen Reim draus machen. Aber wie diesen Wert auslesen?


Ich habe jetzt einmal einen relativ alten Stand auf das Tablet gespielt und werde sehen, ob sich das gleiche Phänomen wieder zeigt.

zeras 6. Jan 2016 19:24

AW: App hängt nach vielen Stunden
 
Zitat:

Zitat von mjustin (Beitrag 1325964)
Idee: kann man die Größe der global reference table auf einen kleineren Wert setzen? (512 scheint Default zu sein, bei FMX hat man anscheinen den Defaultwert mal 100 gewählt)

Gut wäre aber, wenn ich die Größe des globalen Referenz Zählers abfragen könnte. Da wäre ich bestimmt schneller am Ziel.


Ich habe nun einen älteren Stand gefunden. Der läuft seit einigen Tagen auf einem Tablet durch. Auf einem anderen Tablet mache ich gerade die "Kürzung" des Programms.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:34 Uhr.
Seite 1 von 2  1 2      

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