При создании и заполнении моей новой базы данных SQLite в Android я получаю два противоречащих исключения.Вкратце мой код:
Класс расширения SQLiteOpenHelper:
public void onCreate(SQLiteDatabase db) {
db.execSQL(DB_TABLE_CREATE);
loadLevelData(db); //puts data in the database
//db.close(); <<< ?
}
В своем классе активности я создаю экземпляр этого класса (в onCreate ()) и вызываю getWritableDatabase ():
dbHelper = new DbOpenHelper(getApplicationContext());
database = dbHelper.getWritableDatabase();
Теперь, если я не позвоню db.close()
после заполнения базы данных, как описано выше, я получу
android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
Однако, если я действительно закрою ее, я получу следующееисключение:
java.lang.IllegalStateException: database not open
в getWritableDatabase ().
Это действительно смущает меня, поэтому кто-нибудь может мне помочь с тем, что не так?