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);

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!