German Probleme mit Bluetooth Tastatur

mw71

Active Member
Licensed User
Longtime User
Moin, Moin,

ich erfasse in der App einige Daten und speichere diese in einer SQL Datenbank. Um diese Speicherung auszulösen muss der Nutzer entweder den Button "Speichern" drücken oder in einer von 2 definierten "EditTextBoxen" die Enter Taste Drücken.
Nach dem Speichern erfolgt eine "Erfolgsmeldung" via MsgBox2. Darüber kann dann entschieden werden ob die Eingabefelder gelöscht werden oder nicht.

Mit der Internen Tastatur funktioniert dies problemlos, mit den Buttons auch.

Jetzt habe ich mal eine Bluetooth Tastatur angeschlossen. Eingabe, Springen mit Tab zwischen den Feldern u.s.w. funktioniert. Nach drücken von Enter wird der Datensatz auch korrekt gespeichert. Danach stürzt die App aber ab (...wird angehalten).
Im Log (Gerät ist via USB-Debugging verbunden) sehe ich nix und auch der CrashLog wird nicht ausgelöst.

Um den Fehler einzugrenzen habe ich noch folgendes Probiert:
- Button Speichern drücken, MsgBox auf den Bildschirm betätigen oder mit der Tastatur, alles o.k.
- Speichern mit Enter auf der Tastatur auslösen, MsgBox bestätigen (Bildschirm oder Tastatur), es kommt zum Absturz
- Button über die Tastatur ansteuern (Tab Taste) und auslösen, Absturz...

Ich hoffe ihr habt eine Idee woran das liegen könnte.

Danke
 

An Schi

Well-Known Member
Licensed User
Ich nutze eigentlich grundsätzlich nur noch 'callsubdelayed' um andere subs aufzurufen. Keine Ahnung, ob das so richtig ist - das andere ist mir aber zu unberechenbar...
 

mw71

Active Member
Licensed User
Longtime User
Hallo,

danke für den Tip. Wenn ich mir deine Fehlerbeschreibung durchlese ist es genau so wie bei mir.
Leider klappt es mit der Lösung so direkt bei mir nicht.

Zur Probe habe ich die EnterPressed Sub leer gelassen, es wird zum nächsten Feld gesprungen, wie bei Tab-Taste.

Wenn ich mit CallSubDelayed eine andere Sub (in der gleichen Activity) aufrufe, kommt es zum Abbruch, auch wenn die Aufgerufene Sub leer ist.
 

rboeck

Well-Known Member
Licensed User
Longtime User
Ich weiß, es ist umständlich, aber vielleicht könntest Du ein Demoprogramm erstellen und hochladen, das diesen Fehler auch hat; damit könnten wir mehrfach die Ursache ermitteln.
 

mw71

Active Member
Licensed User
Longtime User
Hallo,

hab das Programm mal "zusammengestrichen" (auf den wesentlichen Teil).
Das Problem tritt auf wenn bei Call (lbl_Call) Enter auf der externen Tastatur gedrückt wird (interne funktioniert wie gesagt).

Danke
 

Attachments

  • Test.zip
    97.5 KB · Views: 281

rboeck

Well-Known Member
Licensed User
Longtime User
Hallo,

ich weiß nicht, ob es eine gute oder eine schlechte Nachricht ist - ich komme über die kritische Stelle "drüber", ohne dass es abstürtzt. Es sind einige kleinere Probleme aufgetreteten, die Zeilen 1273 und 1274 musste ich auskommentieren, da die Panels nicht initalisiert sind. Einen Absturz bekomme ich aber hier:

android.database.sqlite.SQLiteConstraintException: UNIQUE constraint failed: log.id (code 1555)
der sich wahrscheinlich aus meiner sinnlosen Dateneingabe ergibt. Soviel ich verstanden habe, bin ich da aber an der kritischen Stelle schon vorbei.
In meiner App verwende ich die Schreibweise: CallSubDelayed(Me,btn_Save_Click) anstatt "Main". Dürfte aber auch keine Rolle spielen.

Was ich eben bemerkte - du verwendest die IME Bibliothek, um Keyboard Ereignisse zu steuern und dabei auch das Keyboard auszublenden. Ich würde da testen, ob sich nicht hier das Problem ergibt, z. B: in Zeile 1735...
 

mw71

Active Member
Licensed User
Longtime User
Moin,

danke erst mal fürs anschauen.
- der Fehler bzgl. SQL kommt da er anscheinend keinen Dateinamen hat (noch nix im Setup eingestellt). Da hast du doch glatt noch einen Fehler gefunden.
- Me und Main spielen auch meiner Meinung nach keine Rolle. Ich habe trotzdem mal beides getestet, man weiß ja nie.
- ja, an die IME Lib habe ich auch schon gedacht, aber auch ein auskommentieren hilft leider nicht

Kritisch sind die Zeilen 1412-1414. Wichtig dabei ist, um den Fehler auszulösen, das per Bluetooth Tastatur auszulösen.
(er bricht bei End Sub, Zeile 1414, ab)
 

rboeck

Well-Known Member
Licensed User
Longtime User
Hallo,

Bei der Eingabe komme ich ohne Probleme bis Call, öffnen mittels Eingabe eines Buchstaben das Auswahlfenster , wähle einen Eintrag aus und drücke Enter.
Ich habe einen Breakpoint auf 1414 gelegt, die Zeile wird bei mir nicht ausgeführt, sondern ich lande in saveQSO, das aus IME1_HandleAction aufgerufen wird. Das Ganze bezieht sich auf den Debug Mode. Möglicherweise reagieren verschiedene Marken in dieser Sache anders?
Was bei mir noch sehr komisch ist: der Compiler bemängelt der Reihe nach alle Befehle in Activity_Pause, beim zweiten Versuch kompiliert er aber dann doch ohne Probleme.
 

mw71

Active Member
Licensed User
Longtime User
Hallo,

- ich habe zur Probe IME... (wieder) auskommentiert, bringt leider nix
- Breakpoint auf 1414 gelegt, bis dahin funktioniert alles, wenn ich aber einen schritt weiter gehe (F8), kommt es zum Absturz

Was mir gerade noch aufgefallen ist, in den Moment wo ich die Sub (über die Enter Taste aufrufe) springt der Cursor auf das nächste Feld (EditTextBox),
keine Ahnung ob das damit zusammen hängt.
 
Top