Я пытаюсь создать резервную копию версии моей базы данных в Dropbox. Все работает нормально, загружая файл в дропбокс, но у меня возникают проблемы с заменой файла, который в данный момент находится на телефоне, на тот, который находится в дропбоксе.
new Thread(new Runnable() {
public void run() {
File file = new File(getDatabasePath("my_database").getPath());
file.getParentFile().mkdirs();
try {
FileOutputStream outputStream = new FileOutputStream(file);
DropboxFileInfo info =dbInstance.getFile("/BackupFolder/my_database", null,
outputStream, null);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}).start();
Когда операция завершается, я получаю много ошибок «SQLiteException: нет такой таблицы». Я проверил правильность базы данных в Dropbox.
01-09 20:03:37.601: W/System.err(7185): android.database.sqlite.SQLiteException: no such table: transaction_table (code 1)
at android.database.sqlite.SQLiteConnection.nativeExecuteForCursorWindow(Native Method)
01-09 20:03:37.601: W/System.err(7185): at android.database.sqlite.SQLiteConnection.executeForCursorWindow(SQLiteConnection.java:1036)
01-09 20:03:37.601: W/System.err(7185): at android.database.sqlite.SQLiteSession.executeForCursorWindow(SQLiteSession.java:836)
01-09 20:03:37.601: W/System.err(7185): at android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:62)
01-09 20:03:37.601: W/System.err(7185): at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:144)
01-09 20:03:37.601: W/System.err(7185): at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:133)
01-09 20:03:37.601: W/System.err(7185): at android.content.ContentResolver.query(ContentResolver.java:436)
01-09 20:03:37.601: W/System.err(7185): at android.content.ContentResolver.query(ContentResolver.java:360)
ОБНОВЛЕНИЕ
Я загрузил файл в другое место на устройстве, чтобы просмотреть его с помощью sqlite3, и все там. Итак, очевидно, загрузка работает правильно, но я не могу перезаписать существующую базу данных во время выполнения этим файлом.