【发布时间】:2012-11-29 14:18:36
【问题描述】:
编辑: 我的数据库有 2 个表。一张表是更新后需要保存和恢复的用户数据。另一个表是常量数据,每次更新时都会从 assets 文件夹中加载。
所以当我升级数据库时,我首先将表一保存到外部数据库。然后我用 copyDataBase(); 覆盖数据库,并使用“常量”表,然后将保存的表复制回来。
在我复制数据库之前,我需要关闭它,否则数据很奇怪。我总是得到一个
close() was never explicitly called on database '/data/data/com.myproject/databases/mdb.sqlite'
在哪里调用 openOrCreateDatabase。 这很奇怪,因为我之前打电话给 close 。我能做什么?
public void onUpgrade(SQLiteDatabase db,
int oldVersion, int newVersion) {
//save db tables to other db ...
db.close();
copyDataBase();
db = SQLiteDatabase.openOrCreateDatabase(databaseFile, null);
//... save back to db
}
谢谢 欧里博尔
【问题讨论】:
-
您不要显示错误发生的WHERE。在
copyDataBase();或db = SQLiteDatabase.openOrCreateDatabase(databaseFile, null);?您也不会在这些方法中显示任何代码。您希望我们如何帮助您? -
我的 copyDataBase() 从这里:reigndesign.com/blog/…。无论如何,它不会做任何与错误消息相关的事情,它只是一个提示,让您感受一下我的功能是做什么的。如前所述,崩溃发生在 openOrCreateDatabase 中
标签: android database exception