German Fehler Quelle nicht zu finden

Sinan Tuzcu

Well-Known Member
Licensed User
Hallo,

irgendwann im Laufzeit, liefert die App die folgende Fehlermeldung im Anhang.

Ich kann leider über den Debug nichts finden, die App wird fehlerfrei kompiliert auch keine Warnungen sind vorhanden.

Kann man aus der Fehlermeldung herausfinden was oder wo ungefähr der Fehler liegt?

Danke im Voraus
Sinan
 

Attachments

  • _20210829_023630.JPG
    _20210829_023630.JPG
    315.3 KB · Views: 44

b4x-de

Member
Licensed User
Hallo, das ist schwer zu sagen. Aber kann es sein, dass du ein Layout in ein Panel lädtst, was zu dem Zeitpunkt selbst noch nicht geladen wurde? Viele Grüße Thomas
 

Sinan Tuzcu

Well-Known Member
Licensed User
1. Fehler IMMER als TEXT posten. Es IST TEXT.
2. Uploade ein kleines Project welches das Problem zeigt. Sollen wir erraten was das Problem sein könnte?`Wie sollen wir das machen ohne zu sehen was Du machst?

1. Ok Manfred, ich hätte den Text hier ein tippen sollen.
2. Wenn ich wüsste, wer oder was den Fehler verursacht, dann hätte ich auch ein kleines Projekt erstellt, das das Problem zeigt.

Irgendwann halt sporadisch, wird der Fehler angezeigt.
Dabei tue ich am Display nichts.

VG
Sinan
 

klaus

Expert
Licensed User
1. Den Fehlertext kannst Du kopieren mit einem Rechtsclick im Log Tab.

2. Nach der Fehlermeldung scheint es Layoutproblem zu sein.

Teste das Programm im Debug Modus bis der Fehler auftretet dann bekommst Du die Zeilennummer wo der Fehler auftretet.
 

Sinan Tuzcu

Well-Known Member
Licensed User
Hi Klaus,

Teste das Programm im Debug Modus bis der Fehler auftretet dann bekommst Du die Zeilennummer wo der Fehler auftretet.
Habe ich gemacht, die APP ist abgestürzt aber leider keine Fehlermeldung im Protokollfenster zusehen.

Nur wenn ich den Debug stoppe, bekomme ich folgendes

java.lang.RuntimeException: java.io.EOFException
at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:175)
at anywheresoftware.b4a.BA$2.run(BA.java:387)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:280)
at android.app.ActivityThread.main(ActivityThread.java:6706)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: java.io.EOFException
at java.io.DataInputStream.readByte(DataInputStream.java:270)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:344)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:255)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:144)
... 8 more
und daraus werde ich auch nicht schlau
 

klaus

Expert
Licensed User
Ich hatte gestern Besuch daher kein B4X.
Ich babe Dein Programm getestet, hatte aber keinen Absturz.
Unter welchen Bedingungen bekommst Du den Absturz?

In dem Programm sehe ich, beim Kompilieren, diese Meldung:
Panel size is unknown. Layout may not be loaded correctly.
Die solltest Du vermeiden.
In dieser Zeile:
accord.addPanel(41dip, 270dip, createPanel("User Login",Colors.ARGB(255,255,255,255),0))
wenn createPanel aufgerufen wird, sind die Masse des Panels noch nicht ermittelt.
Die Masse solltest Du in createPanel einbinden.
 
Last edited:

Sinan Tuzcu

Well-Known Member
Licensed User
Hallo Zusammen,

nun habe ich die Fehlerquelle entdeckt.

Ich öffne den Left_ Slidemenu, je nach Bildschirmgröße in die Breite.
D.h. es wird zuerst geprüft, ob es sich um ein Querformat oder Hochfomat handelt, auch wird geprüft,
ob ein kleines Bildschirm oder ein großes Bildschirm ist.

Mit dem folgenden Code:
B4X:
'    ####################### SLIDE MENUE #############################
'    If Variablen.pScreenSize >= 4 And Variablen.pScreenSize <6 Then
'        If (Variablen.GetOrientation = 0) Or (Variablen.GetOrientation = 2) Then
            Drawer.Initialize(Me,"Drawer",Activity,70%x)
'        else if (Variablen.GetOrientation = 1) Or (Variablen.GetOrientation = 3) Then
'            Drawer.Initialize(Me,"Drawer",Activity,50%x)
'        End If
'  
'    else if Variablen.pScreenSize >= 6 And Variablen.pScreenSize <10 Then
'        If  (Variablen.GetOrientation = 0) Or (Variablen.GetOrientation = 2) Then
'            Drawer.Initialize(Me,"Drawer",Activity,50%x)
'        else if (Variablen.GetOrientation = 1) Or (Variablen.GetOrientation = 3) Then
'            Drawer.Initialize(Me,"Drawer",Activity,30%x)
'        End If
'    End If

Und wenn ich die ganzen Prüfmechanismen weglasse,
d.h., wenn ich nur die eine Zeile zu stehen habe

B4X:
 Drawer.Initialize(Me,"Drawer",Activity,70%x)

für alle Bildschirmformate, dann stürzt die App nicht.

Sieht jemand mein Fehler?

PS: Wie bereits oben erwähnt, die APP stürzt nur sporadisch.

VG
Sinan
 
Top