使用Android Studio创建SQLite DB时数据库锁定错误

时间:2019-02-03 20:04:02

标签: android sqlite

我正在尝试在设备上创建新的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);
    }

0 个答案:

没有答案