【发布时间】:2019-03-23 18:03:33
【问题描述】:
有 5 个房间数据库,每个房间都有不同的实体和道。我使用下面的代码使用相同的方法进行备份和恢复。除了在“restoreSQL”方法之后引发以下错误之外,所有这些都可以正常工作:
E/SQLiteLog: (26) 文件已加密或不是数据库
请帮忙。
private void backupSQL(String sdb, File tDB){
File sDB = getDatabasePath(sdb);
P.closeDB(sdb);
try {
FileUtils.copyFile(sDB, tDB);
} catch (Exception e) {
e.printStackTrace();
}
}
private void restoreSQL(File tDB, String sdb){
File sDB = getDatabasePath(sdb);
P.closeDB(sdb);
try {
FileUtils.copyFile(tDB, sDB);
} catch (Exception e) {
e.printStackTrace();
}
}
更新:显然,我要问的第一个问题是 DAO 或其他数据库的身份有什么区别。答案是它们都是相同的,这就是让我发疯的原因。
更新 2: 我发现了那个特定房间数据库的问题所在。我在 BACKUP 之前关闭了那个关节数据库,所以跳过了 -SHM 和 -WAL 参考。
【问题讨论】:
-
与其更新问题,不如将其发布为下面的答案并接受。
-
abatishchev:谢谢。如何将其标记为已接受?
-
我重申这个问题:我看到他们多次询问发布者,将答案标记为已接受。我在任何地方都没有看到表示接受的按钮,那么您如何将响应接受为已接受?
-
我只是想了解它的工作原理并遵守规则并感谢版本。一当你在寻找解决方案时,有时你并没有意识到语法和概念上的错误。快乐的一天
标签: java android-room