Приятной особенностью Android является то, что он с открытым исходным кодом . Итак, мы можем видеть, что openOrCreateDatabase()
реализован так:
public SQLiteDatabase openOrCreateDatabase(String name, int mode, CursorFactory factory) {
return mBase.openOrCreateDatabase(name, mode, factory);
}
Единственный способ, которым я вижу этот код, бросающий NPE, это если mBase
равно нулю. Из вашего соглашения о вызовах я предполагаю, что ваш класс является производным от android.content.ContextWrapper
? Если да, гарантируете ли вы, что базовый контекст (mBase
) установлен при создании экземпляра вашего класса? Если нет, то это будет причиной проблемы.