私はいくつかのファイルに基づいて、レベルのデータベースを作成するためにAndroidのSQLiteを使用しています。私が最初にSQLiteOpenHelperを作成し、その上に私はgetReadableDatabase()またはgetWritableDatabaseを(呼び出し)そうのonCreate()メソッドが呼び出されると、私のDBが作成されますSQLite getReadableDatabase()はNULLを返します
@Override //Main Activity
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
dbHelper = new DbOpenHelper(this);
database = dbHelper.getWritableDatabase(); //is a field
-
public DbOpenHelper(Context context) {
super(context, DB_NAME, null, DATABASE_VERSION);
Log.d("CREATING CLASSS", "OSDIFJE*(#");
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DB_TABLE_CREATE);
loadLevelData();
}
// Load data into the database on creation
private void loadLevelData() {
Log.d("DbOpenHelper", "Loading Level Data");
AssetManager mgr = MenuActi ~~snip~~
Log.d("dataaosdifj",MenuActivity.database.toString()); //NullPointerException!
MenuActivity.database.insert(DB_TABLE_NAME, null, info);
}
私はまた、同じ結果をloadLevelData()メソッド内でgetWritableDatabase()を呼び出してみました。
これはかなり一般的な問題ですが、ほとんどのスレッドには解決策がありません。
してください:? '(
DbOpenHelperはSQLiteOpenHelperを拡張していますか?データベースの種類は何ですか? – kosa
はい、データベースはSQLiteDatabaseです。 – user717572