Zweiter Aufruf der gleichen Funktion verursacht Exception...

  • Hallo zusammen,
    Ich habe in meinem Programm eine Funktion, die eine Datenbank aus dem Assets-Order in den data-Ordner schreibt:



    Wenn ich die Funktion aufrufe, funktioniert alles problemlos und die Datenbank wird erstellt. Wird die Funktion dann ein zweites Mal aufgerufen, so bekomme ich eine "NullPointerException at android.content.res.AssetManager.readAsset(Native Method)" (bei der While-Schlaufe).
    Es kommt nicht darauf an, ob ich dazwischen etwas mache, oder die Funktionen gleich zwei mal hintereinander aufrufe, ich bekomme immer die Exception.
    Ich habe mir dann mal alle Variablen ausgeben lassen vor der While-Schlaufe, beim 1. sowie beim 2. mal:


    Variable *************************** Wert Beim 1. Aufruf ***************************** Wert beim 2. Aufruf
    myInput ****************** (...)AssetInputStream@44c11178****************************(...)AssetInputStream@44c11178
    outFileName*************/data/data/com.project.org/databases/myDB*******/data/data/com.project.org/databases/myDB
    myOutput*****************(...)FileOutputStream@44c1f178***********************(...)FileOutputStream@44c1ffa0
    buffer*****************************************[B@44c1f4a8 ************************************************[B@44c202d0


    Kann mir jedoch nicht vorstellen, dass das etwas damit zu tun hat.... Hat jemand eine Idee, woran das liegen könnte?


    Grüsse

  • StartActivity.AssetDB is nen InputStream? Dann kriegst du ziemlich sicher mit dem "=" ne Reference und keine Copy. Dadurch wird durch das myInput.close() auch StartActivity.AssetDB geschlossen. Bin mir jetz nicht sicher, wie das mit den InputStreams ist, aber probier mal ein InputStream myInput = StartActivity.AssetDB.clone(); oder InputStream myInput = new InputStream(StartActivity.AssetDB);

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!