Hallo zusammen,
Ich habe in meinem Programm eine Funktion, die eine Datenbank aus dem Assets-Order in den data-Ordner schreibt:
final static void copyDBFromAsset() throws IOException {
InputStream myInput = StartActivity.AssetDB;
String outFileName = StartActivity.DB_PATH + StartActivity.DB_NAME;
OutputStream myOutput = new FileOutputStream(outFileName);
byte[] buffer = new byte[1024];
int length;
while ((length = myInput.read(buffer)) > 0) {
myOutput.write(buffer, 0, length);
}
myOutput.flush();
myOutput.close();
myInput.close();
}
Alles anzeigen
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