Null Pointer Создание базы данных SQLite - PullRequest
0 голосов
/ 23 августа 2011

Почему эти две строки кода бросают NPE?

SQLiteDatabase db;
db = openOrCreateDatabase("TestingData.db", SQLiteDatabase.CREATE_IF_NECESSARY, null);

StackTrace:

08-23 10:33:14.285: ERROR/AndroidRuntime(1001): Caused by: java.lang.NullPointerException
08-23 10:33:14.285: ERROR/AndroidRuntime(1001):     at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:203)
08-23 10:33:14.285: ERROR/AndroidRuntime(1001):     at org.*****.android.CopyOfSQLLite.data(CopyOfSQLLite.java:14)
08-23 10:33:14.285: ERROR/AndroidRuntime(1001):     at org.******.android.*****.****(****.java:200)
08-23 10:33:14.285: ERROR/AndroidRuntime(1001):     at org.********.android.****.onCreate(DashboardPage.java:25)
08-23 10:33:14.285: ERROR/AndroidRuntime(1001):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
08-23 10:33:14.285: ERROR/AndroidRuntime(1001):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)

Ответы [ 2 ]

1 голос
/ 23 августа 2011

Ваш ContextWrapper не имеет базового контекста. Скорее всего, вы не вызываете этот метод в правильном месте, но я не могу сказать больше без небольшого кода.

0 голосов
/ 23 августа 2011

Приятной особенностью Android является то, что он с открытым исходным кодом . Итак, мы можем видеть, что openOrCreateDatabase() реализован так:

public SQLiteDatabase openOrCreateDatabase(String name, int mode, CursorFactory factory) {
    return mBase.openOrCreateDatabase(name, mode, factory);
}

Единственный способ, которым я вижу этот код, бросающий NPE, это если mBase равно нулю. Из вашего соглашения о вызовах я предполагаю, что ваш класс является производным от android.content.ContextWrapper? Если да, гарантируете ли вы, что базовый контекст (mBase) установлен при создании экземпляра вашего класса? Если нет, то это будет причиной проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...