編輯: 我的數據庫有2個表。一張表是需要在更新後保存和恢復的用戶數據。另一個表是在每次更新時從資產文件夾加載的常量數據。Android:DatabaseObjectNotClosedException在OnUpgarde雖然它關閉
因此,當我升級數據庫時,我首先將表1保存到外部數據庫。然後我用copyDataBase();
覆蓋數據庫並使用「常量」表,然後將保存的表複製回來。
在我複製數據庫之前,我需要關閉它,否則數據很奇怪。我總是得到一個
close() was never explicitly called on database '/data/data/com.myproject/databases/mdb.sqlite'
其中openOrCreateDatabase被調用。 這很奇怪,因爲我之前打過電話。我能做什麼?
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
}
感謝 期Euribor
你**不要**顯示**哪裏**錯誤正在發生。在'copyDataBase();'或'db = SQLiteDatabase.openOrCreateDatabase(databaseFile,null);'?你也不會在這些方法中顯示任何代碼。你如何期待我們幫助你? –
我的copyDataBase()從這裏:http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/。無論如何,它不會做任何與錯誤消息相關的事情,它只是讓我感覺到我的功能所做的一切。並且崩潰發生在openOrCreateDatabase中,如 – user1857855