当我尝试插入数据库日志时,cat 显示如下错误java.lang.illegalstateexception database not open android.
但我已经使用
db = SQLiteDatabase.openDatabase(DATABASE_PATH, null,
SQLiteDatabase.OPEN_READWRITE);
该错误不经常发生。有人知道这是什么原因吗?
试试这样:
if (!db.isOpen()) {
db = getApplicationContext().openOrCreateDatabase(DATABASE_PATH, SQLiteDatabase.OPEN_READWRITE, null);
}
尝试
DatabaseHelper dataHelper;
SQLiteDatabase mDb;
public DbManager openDB() throws SQLException {
mDb = dataHelper.getWritableDatabase();
return this;
}
并在您重新编写当前代码的地方调用此方法。
试试这个代码
public class DataBaseHelper extends SQLiteOpenHelper{
public SQLiteDatabase openDataBase() throws SQLException{
//Open the database
File dbFile = _myContext.getDatabasePath( DB_PATH + DB_NAME );
_myDataBase = SQLiteDatabase.openDatabase(dbFile.toString(), null, SQLiteDatabase.OPEN_READWRITE);
return _myDataBase;
}//end of openDataBase() method
}
也许您正在打开一个打开的数据库。每次工作完成时关闭数据库。