sqlite 데이터베이스를 만들고 싶지만 항상 nullpointer 예외가 발생합니다.getWritableDatabase의 Sqlite Nullpointer 예외
내 Databasehelper 이런 식으로 시작: 다음
ContentProvider cp = new ContentProvider(this, this);
public ContentProvider(Context _context, MainActivity activity) {
db = new DatabaseHelper(context);
을 그리고 Databasehelper 내가 다음 데이터베이스에 어떤 데이터를 기록 할이
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATENBANK_NAME = "serien.db";
private static final int DATENBANK_VERSION = 1;
// Table Names
private static final String TABLE_SERIEN = "serien";
private static final String TABLE_EPISODEN = "episoden";
// Common column names
private static final String KEY_ID = "id";
private static final String KEY_NAME = "name";
private static final String KEY_ISFAV = "isfav";
private static final String KEY_ENR = "episodennr";
private static final String KEY_SNR = "staffelnr";
private static final String KEY_SID = "serienid";
private static final String KEY_RELEASE = "release";
// serien table create statement
private static final String CREATE_TABLE_SERIEN = "CREATE TABLE "
+ TABLE_SERIEN + "(" + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME
+ " TEXT," + KEY_ISFAV + " INTEGER);";
// episoden table create statement
private static final String CREATE_TABLE_EPISODEN = "CREATE TABLE "
+ TABLE_EPISODEN + "(" + KEY_ID + " INTEGER PRIMARY KEY," + KEY_ENR + " INTEGER ," +
KEY_SNR + " INTEGER ," + KEY_SID + " INTEGER ," + KEY_ID + " TEXT, FOREIGN KEY("+ KEY_SID + ") REFERENCES "+TABLE_SERIEN+"("+KEY_ID+"));";
private Context appContext;
public DatabaseHelper(Context context) {
super(context, DATENBANK_NAME, null, DATENBANK_VERSION);
appContext = context;
} // Db()
@Override
public void onCreate(SQLiteDatabase db) {
Log.d("CREATE", CREATE_TABLE_SERIEN);
Log.d("CREATE", CREATE_TABLE_EPISODEN);
db.execSQL(CREATE_TABLE_SERIEN);
db.execSQL(CREATE_TABLE_EPISODEN);
} // onCreate()
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_SERIEN);
db.execSQL("DROP TABLE IF EXISTS " + TABLE_EPISODEN);
onCreate(db);
} // onUpgrade()
@Override
public void onOpen(SQLiteDatabase db) {
super.onOpen(db);
if (!db.isReadOnly()) {
// Enable foreign key constraints
db.execSQL("PRAGMA foreign_keys=ON;");
}
}
처럼 보인다 이 방법
public long createSerie(Serie serie) {
DatabaseHelper dbHelper = new DatabaseHelper(appContext);
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAME, serie.getName());
values.put(KEY_ISFAV, serie.getIsFav());
// insert row
long serie_id = db.insert(TABLE_SERIEN, null, values);
return serie_id;
}
하지만 여기에 문제가 있습니다. 나는 줄에서 ..getWritableDatabase() 오류가 항상 발생했습니다.
이 문제에 대해 많은 스레드를 읽었지만 tryed는 아무 것도 작동하지 않았습니다.
누구에게 어떤 문제가있을 수 있습니까?
대단히 감사합니다!
ur 컨텍스트가 null 인 것 같음 – KOTIOS