Android SQLITE 非法状态异常

Android SQLITE Illegal State Exception

我正在使用以下代码将项目添加到数据库中:

public static void insertQuestion(Context c,JSONArray jarr,String search) throws JSONException {
        DatabaseWrapper databaseWrapper = new DatabaseWrapper(c);
        SQLiteDatabase database = databaseWrapper.getWritableDatabase();
        ContentValues values = postToContentValues2(jarr);
        values.put(QuestionORM.COLUMN_SEARCH,search);
        long questionId = database.insert(QuestionORM.TABLE_NAME, "null", values);
        Log.e(TAG, "Inserted new Question with ID: " + questionId);
        database.close();
    }

但我收到一条错误消息

"attempt to re-open an already-closed object"

这一行:

SQLiteDatabase database = databaseWrapper.getWritableDatabase();

我该如何解决这个问题?

谢谢!

打开前检查

if(database != null && database.isOpen()){
// if open then don't open
} 

----更新----

// 在你的 class calss

中添加这个方法
private SQLiteDatabase myDataBase;

...

    public boolean isDatabaseOpened() {
        if (myDataBase == null) {
            return false;
        }
        return myDataBase.isOpen();
    }

如果方法 returns false 则仅根据您的要求调用 getWritableDatabase() 或 getReadableDatabas()。