FAQ_21 sqlite exception: close() was never explicitly called on database
2012-06-13 00:25
387 查看
经常与数据库打交道的 frend 们,估计肯定遇到这样的错误提示:
close() was never explicitly called on database ××××××××××××××××××
这种错误提示,不会导致程序崩溃,至少我没有遇到。
这个错误来源:
framworks/base/core/java/android/database/sqlite/SQLiteDatabase.java
我的代码报了这个错误,我感觉很郁闷,因为我的确是 close 了!!
DatabaseHelper dbHelper = new DatabaseHelper(context);
SQLiteDatabase db = dbHelper.getWritableDatabase();
if (db != null && db.isOpen()) {
db.close();
}
if (dbHelper != null) {
dbHelper.close();
}
最后发现,在代码里面,有:
所以须将 close 放到这个判断的 return 之前一份,因为 isDate == true,进入这个语句,程序就不会往下执行,那麽还没有 close,就会包错。
这样就没有错误了。
close() was never explicitly called on database ××××××××××××××××××
这种错误提示,不会导致程序崩溃,至少我没有遇到。
这个错误来源:
framworks/base/core/java/android/database/sqlite/SQLiteDatabase.java
@Override protected void finalize() { if (isOpen()) { Log.e(TAG, "close() was never explicitly called on database '" + mPath + "' ", mStackTrace); closeClosable(); onAllReferencesReleased(); } }
我的代码报了这个错误,我感觉很郁闷,因为我的确是 close 了!!
DatabaseHelper dbHelper = new DatabaseHelper(context);
SQLiteDatabase db = dbHelper.getWritableDatabase();
if (db != null && db.isOpen()) {
db.close();
}
if (dbHelper != null) {
dbHelper.close();
}
最后发现,在代码里面,有:
if(isDate) { //************ return; }
所以须将 close 放到这个判断的 return 之前一份,因为 isDate == true,进入这个语句,程序就不会往下执行,那麽还没有 close,就会包错。
这样就没有错误了。
相关文章推荐
- close() was never explicitly called on database 和 database is locked 错误原因
- 处理AndroidSQLite-close()was never explicitly called on database异常
- 解决android sqlite 中"close() was never explicitly called on database" 与java线程同步
- close() was never explicitly called on database
- android SQLite :close() was never explicitly called on database 'XXXXXX'
- close() was never explicitly called on database 和 database is locked 错误原因
- close() was never explicitly called on database,SQLiteMisuseException
- close() was never explicitly called on databaseandroid.database.sqlite异常
- close() was never explicitly called on database '/data/data/com.seehope.view/databases/note.db' 异常
- SQLite: close() was never explicitly called on database
- close() was never explicitly called on database '/data/data/com.example.shiyan/databases/njupt.db'
- close() was never explicitly called on database 和 database is locked 错误原因
- 处理Android SQLite - close() was never explicitly called on database异常
- Android SQLite - close() was never explicitly called on database
- 解决AndroidSQLite-close()wasneverexplicitlycalledondatabase异常
- 解决AndroidSQLite-close()wasneverexplicitlycalledondatabase异常
- (currentSyncQueue != self && "inDatabase: was called reentrantly on the same queue
- Application did not close the cursor or database object that was opened here 异常
- android开发 WebViewjava.lang.Throwable: A WebView method was called on thread 'JavaBridge'. All WebVie
- Android异常解决--A WebView method was called on thread 'JavaBridge'. All WebView methods must be called