我正在尝试在Dropbox上备份我的数据库版本。一切正常,将文件上传到Dropbox但我无法用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查看它,一切都在那里。所以,显然下载工作正常但我无法在运行时使用此文件覆盖现有数据库。
答案 0 :(得分:0)
尝试在覆盖数据库之前关闭所有数据库连接。
你可以这样做: