German Fehlermeldung

Heinz

Active Member
Licensed User
Hallo, hatte schon ein Jahr nichts mehr gemacht.
Nachdem ich das neue Update installiert habe
und mein älteres Projekt (vor einem Jahr) neu
in Angriff genommen hatte, bekomme ich eine
Fehlermeldung nach dem Compilieren :

invalid resource directory name: H:\B4A\Tour45\Objects\bin\extra\res1\res/values-b+sr+Latn

Weiß jemand, was das bedeutet bzw. was ich machen muß ?
Eigentlich braucht man ja in den bin - und object - Ordnern nichts zu machen.
 

Heinz

Active Member
Licensed User
Nach einer kompletten Neuinstallation des SDK geht es jetzt.
Nun taucht ein anderes Problem auf. Als ich nun ein paarmal
mein Project (Code) geändert hatte und neu aufs Phone aufgespielt
hatte, startet meine App nicht mehr. Sie startet zwar, aber beendet
sich sofort kommentarlos.

Ein neuer Key und auch ein neuer Packagename halfen nichts.

Ich hatte auch nichts sonderliches gemacht. Einen neuen Button hinzugefügt
und den entsprechenden Code natürlich. Alles andere vom Projekt blieb erhalten.
 

pucki

Active Member
Licensed User
Das Problem kenne ich.

Ich vermute deine App greift auf eine interen Datenbank zu. Wenn diese Datenbank nicht richtig ist, macht die App Fehler. Im Prinzip hast du ein logischen Programmfehler in deiner Software.

Bei mir ist es so. Mein VB-für-Windows-prg erstellt eine Datenbank (sql) die dann via Batch-datei und den sdk-Transfer auf ein Tablett übertragen wird. in 90% aller Fälle klappt das. Bei den restlichen 10 % irgendwie nicht. Die Datenbank ist ca. 100 K aktuell groß. Wenn ich mir die Dateigröße ansehe auf den Tablett liegt die bei ca. 10 KB und ich hab eine neue Datei da. Dateiname.sql.corupted (oder so ähnlich) nach den Starten der App.

Mein Tipp. Überprüfe den PRG.-Code auf logische nicht abgefangene Fehler. Und vor allen Dingen prüfe ob externe Dateien die die App braucht fehlerfrei sind.

Logische Fehler sind Fehler die durch den Prg.-Code entstehen. Einer der bekanntesten ist ein division-durch-0-error. Den findet kein Compiler. Besonders dann nicht wenn die Variable erst erzeugt bzw. gefüllt wird.

Kleiner Hinweis. Selbst der Debug-Mode findet den Fehler mit der defekten Datenbank nicht. !!! *leider getestet*

Mehr kann ich dir leider nicht helfen.

Leider gibt es kein globales Fehlermanagement mehr. Damals war es einfach. In die erste Zeile ein "on error goto Fehler_ist_da" und in jeder Subroutine eine die Gobale my_fehler$ Variable mit den Name der Routine gefüllt. Ausgelesen, Fehlercode dazu, fertig ;) Das waren noch schöne Zeiten ;)

Ich vermute aber dein Fehler liegt in den Start-Routinen. Da ich meine DB da initialisiere, knallt es. Du solltest also besonders die Start + Ini Sub's untersuchen.

Gruß

Pucki
 
Last edited:

Heinz

Active Member
Licensed User
Ich hab da nur eine kleine .csv-Datei.
Könnte jetzt sein, daß die beim Deinstallieren weg war.
Andererseits habe ich sie mal vorsichtshalber in die .apk
mit reingesetzt (rechts unten bei Dateien). Bringt aber
auch keine Besserung.
Wohin wird die Datendatei denn beim Installieren
kopiert ?
Im Programm habe ich den Zugriff auf
File.DirInternal
stehen. Das hat auch immer damit funktioniert.
 

pucki

Active Member
Licensed User
ich benutze das so.

my_sql.Initialize(File.DirRootExternal, "d_bank.db", False)

Das bedeutet Hauptverzeichnis des Tablett-Speicher. Ein Zugriff auf die SD-Karte ist mir bisher nicht gelungen.

Was auch der Grund mit ist, das mein VB-Prg. die Datenbank jedesmal neu erzeugen muss ;) Die Datenbank ist nur eine abgespeckte Version der Original-DB (die hat ca. 1.5 GB)

Ich behaupte nicht das der Fehler an der Datei liegt. Wenn es vorher funktioniert hat, und du nun OHNE WAS ZU ÄNDERN Probleme hast,ist vermutlich einer der Befehle in den INI Subs Mist. Der Grund für die Vermutung ist, das du von den Prg. gar nix siehst. Und der Fehler nicht erst wegen einer User-Reaktion auftritt.

Und ich würde HIER zuerst suchen.

Sub Process_Globals
Sub Globals
Sub Activity_Create(FirstTime As Boolean)


Entweder sind Dateien die aufgerufen sind, defekt. Oder Initialize - Befehle versuchen was , was nicht geht.

Ich kenne dein Code nicht, deshalb kann ich nur raten.

Es gibt aber ein Trick wie du ihn finden kannst.

1.) Stelle den Compiler in den DEBUG-Mode.
2.) Setze in den Code Folgende Zeile. LOG ("Hier bin ich")
3.) Compiliere (BA-Brücke muss auf den Handy laufen !!!

Nun lese die Meldungen im Compiler mit.
Da sollte "hier bin ich" stehen.

steht er da, schiebe den Befehl im Code tiefer.
Wenn es nicht da steht, schiebe den Befehl höher

Du kannst auch mehre Befehle setzen, ich würde sie durchnummerieren. Dann geht das schneller ;)

Auf die weise kannst du den Zeilenbereich eingrenzen. Der Befehl der zwischen den Beiden Positionen liegt musst du überprüfen.

Ich habe auf die Weise auch mein Problem gefunden und erkannt.

Gruß

Pucki
 

Heinz

Active Member
Licensed User
Ja, muß ich mal sehen.
Wie gesagt, compiliert wird ohne Fehler und installiert auch.
Da hilft nur debug am fertigen Programm.
 
Top