German Fehlermeldung

Discussion in 'German Forum' started by Heinz, Feb 3, 2018.

  1. Heinz

    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.
     
  2. Heinz

    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.
     
  3. pucki

    pucki 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: Feb 4, 2018
  4. Heinz

    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.
     
  5. pucki

    pucki 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
     
  6. Heinz

    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.
     
Loading...