我正在尝试在设备上创建新的SQLite数据库。数据库显示为“锁定”,并引发以下错误:
13774-13774/com.example.dummy E/SQLiteLog: (5) database is locked
13774-13774/com.example.dummy E/SQLiteDatabase: Failed to open database '/data/data/com.example.dummy/databases/quizdb'.
android.database.sqlite.SQLiteDatabaseLockedException: database is locked (code 5): , while compiling: PRAGMA journal_mode
#################################################################
Error Code : 5 (SQLITE_BUSY)
Caused By : The database file is locked.
(database is locked (code 5): , while compiling: PRAGMA journal_mode)
我删除了我认为不相关的代码,以保留以下内容:
class DbHelper extends SQLiteOpenHelper {
private static final String DB_NAME = "quizdb";
private static final int DB_VERSION = 301;
public DbHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override public void onCreate(SQLiteDatabase db) {
String omPath = Environment.getDataDirectory().getPath();
final String Path = omPath + "/data/com.example.dummy/databases/";
SQLiteDatabase gg = null;
try {
gg=SQLiteDatabase.openDatabase(Path + DB_NAME, null, 0);
} catch (Exception e){
//Database does not exist - need to create it
sqlQuery = String.format("CREATE TABLE IF NOT EXISTS %s ( %s INTEGER PRIMARY KEY AUTOINCREMENT, %s TEXT )", DB_TABLE, KEY_ID, KEY_QUES);
db.execSQL(sqlQuery);
addQuestions();
}
}
private void addQuestions() {
Question q1 = new Question("Question1234");
this.addQuestionToDB(q1, DB_TABLE);
}
private void addQuestionToDB(Question q, String DB) {
ContentValues values = new ContentValues();
values.put(KEY_QUES, q.getQuestion());
//Code fails on following line
dbase.insert(DB, null, values);
}