German App wird nicht ausgeführt

Heinz

Active Member
Licensed User
Longtime User
Hallo,
ich will mir eine kleine App für eine BTM222 - Relaiskarte
schreiben. Doch schon beim bloßen Erstellen der GUI
wird meine App sofort geschlossen.
Ist ja bis jetzt nicht viel :

B4X:
#Region  Project Attributes
    #ApplicationLabel: BTM222 Relaiskarte
    #VersionCode: 1
    #VersionName:
    'SupportedOrientations possible values: unspecified, landscape or portrait.
    #SupportedOrientations: unspecified
    #CanInstallToExternalStorage: false
#End Region

#Region  Activity Attributes
    #FullScreen: False
    #IncludeTitle: True
#End Region

Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.
    Dim Serial1 As Serial
End Sub

Sub Globals
    'These global variables will be redeclared each time the activity is created.
    'These variables can only be accessed from this module.
    Dim ch1, ch2, ch3, ch4, ch5, ch6 As CheckBox
    Dim btn1, btn2, btn3 As Button
    Dim ASS As AsyncStreams
    Dim data As Byte
    Dim msg As String
End Sub

Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    'Activity.LoadLayout("Layout1")
    'If FirstTime Then
       Serial1.Initialize("Serial1")
       btn1.Initialize("btn1")
       btn2.Initialize("btn2")
       btn3.Initialize("btn3")
       btn1.Text = "AN"
       btn2.Text = "AUS"
       btn3.Text = "ENDE"
       ch1.Initialize("ch1")
       ch2.Initialize("ch2")
       ch3.Initialize("ch3")
       ch4.Initialize("ch4")
       ch5.Initialize("ch5")
       ch6.Initialize("ch6")
       ch1.Text = "RELAIS 1"
       ch2.Text = "RELAIS 2"
       ch3.Text = "RELAIS 3"
       ch4.Text = "RELAIS 4"
       ch5.Text = "RELAIS 5"
       ch6.Text = "RELAIS 6"
       Activity.AddView(btn1, 10dip, 20dip, 60dip, 40dip)
       Activity.AddView(btn2, 10dip, 80dip, 60dip, 40dip)
       Activity.AddView(btn3, 10dip, 140dip, 60dip, 40dip)
       Activity.AddView(ch1,  100dip, 20dip, 80dip, 40dip)
       Activity.AddView(ch2,  100dip, 80dip, 80dip, 40dip)
       Activity.AddView(ch3,  100dip, 140dip,80dip, 40dip)
       Activity.AddView(ch4,  100dip, 200dip,80dip, 40dip)
       Activity.AddView(ch5,  100dip, 260dip,80dip, 40dip)
       Activity.AddView(ch6,  100dip, 320dip,80dip, 40dip)
       ASS.Initialize(Serial1.InputStream, Serial1.OutputStream, "BT")
    'End If
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub btn1_Click
   
End Sub

Sub btn2_Click
   
End Sub

Sub btn3_Click
    Activity.Finish
End Sub

Die App schließt sich beim Ausführen ohne Kommentar.
Dachte schon, daß meinem Smartphone die Puste
ausgeht und deshalb habe ich alles Unnötige geschlossen.
Aber am Speicher scheint es nicht zu liegen.

Fehler kommt leider auch keiner.
Woran könnte das liegen ?
 

klaus

Expert
Licensed User
Longtime User
Fehler kommt leider auch keiner.
Bist Du sicher?

Hast Du einen Breakpoint am Anfang der Activity_Create Routine gesetzt und das Programm Schritt für Schritt ausgeführt ?

Hast Du den Connect Btutton im IDE Logs Tab gedrückt ?

Ich habe deinen Code in ein Project eingefügt und bekomme einen Fehler in dieser Zeile:
ASS.Initialize(Serial1.InputStream, Serial1.OutputStream, "BT")
Ich habe leider keine Erfahrung mit Serial und AsyncStreams und kann leider nicht weiter helfen.

Logs:
LogCat connected to: CB5125D5LF
--------- beginning of crash
--------- beginning of system
--------- beginning of main
** Service (starter) Create **
** Service (starter) Start **
** Activity (main) Create, isFirst = true **
Error occurred on line: 63 (Main)
java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.InputStream android.bluetooth.BluetoothSocket.getInputStream()' on a null object reference
at anywheresoftware.b4a.objects.Serial.getInputStream(Serial.java:254)
at b4a.example.main._activity_create(main.java:451)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:702)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:336)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:246)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:134)
at b4a.example.main.afterFirstLayout(main.java:102)
at b4a.example.main.access$000(main.java:17)
at b4a.example.main$WaitForLayout.run(main.java:80)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:211)
at android.app.ActivityThread.main(ActivityThread.java:5389)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)
** Activity (main) Resume **
 

Heinz

Active Member
Licensed User
Longtime User
Danke für die Tipps.
Hängt tatsächlich an dieser Zeile :
B4X:
ASS.Initialize(Serial1.InputStream, Serial1.OutputStream, "BT")
Da muß ich mich wohl noch etwas belesen. Wollte das nur mal so im Vorfeld
initialisieren. Halt, sowie es im Tutorial von Erel steht.

Siam :
Wie kommt man an das Logfile ?
Ich dachte, das sähe man auch rechts im Fenster, wo die
ganzen Libs, Module und das LogCat aufgelistet sind.

Daß Android da keine vernünftige Fehlermeldung wirft ?
Das ist mir jetzt schon ein paar mal passiert, daß ich im
Regen stand.

PS:
Was ich auch noch erwähnen wollte : Gibt es für die mitgelieferten
Standard - Libs keine vernünftige Hilfe ? Erst, wenn sie eingeunden
sind, hat man erst in der IDE die Funktionen mit den nötigen Parametern
zur Hand. Das ist dann als Neuling ziemlich mühsam, sich zurecht
zu finden. Da muß man hier im Forum zuerst suchen, was man braucht.

Das wäre viell. ein Eintrag in die Wunschliste.
Ein Rechtsklick (dort, wo die Libs gelistet sind) in der IDE.
Da bräuchte ja nur ein Fenster aufgemacht werden, das
sämtliche Funktionen, die ja in der XML-Datei stehen,
auflistet.
 

Siam

Active Member
Licensed User
Longtime User
Hi,

an das logfile kommst du wie du beschrieben hast in dem du in dem rechten fenster unten auf den reiter Logs klickst.
Eigendlich sind die fehlermeldungen die in diesem Log auftauchen relativ einfach zu lesen wenn man sich mal ein wenig damit auseinadergesetzt hat.

Es gibt eine documentation für die lib's & co diese findest du z.b. unter https://www.b4x.com/android/documentation.html
und es gibt noch den B4a Object Browser musst einfach mal hier im forum suchen.


lg

andy
 

klaus

Expert
Licensed User
Longtime User
Hast Du mal den B4A Beginner's Guide gelesen ?

Es gibt zwei Programme welche Librayfunktionen anzeigen:
B4x Help Viewer von agraham geschrieben und von mir erweitert. Ist im Beginner's Guide beschrieben: chapter 12.2 B4x Help Viewer, .
B4A Object Browser von Vader geschrieben
 
Top