SQLite cursor.getString() NullPointerException

Я получаю исключение NullPointerException, когда пытаюсь получить данные из моей базы данных SQLite в Android. Я создаю Cursor из необработанного запроса и вызываю cur.getString(index), однако это приводит к исключению NullPointerException:

SQLiteDatabase db = dbHelper.getReadableDatabase();
    Cursor cur = db.rawQuery("SELECT Campaign, sum(Score) AS Score, Player FROM Levels GROUP BY Campaign", null);

    final int length = cur.getCount();
    names = new CampaignListItem[length];

    if (cur.moveToFirst()) {
        int row = 0;
        do {
            names[row].name = cur.getString(0); <--NPE
            names[row].score = cur.getInt(1);
            names[row].player = cur.getString(2);
            row++;
        } while (cur.moveToLast());
    }
    cur.close();
    db.close();  

Я вошел cur, а также namesОднако они не являются нулевыми. Я делаю что-то неправильно?

1 ответ

Решение

У вас нет никаких CampaignListItems в вашем массиве, так как вы только строите массив, но не добавляете туда никаких объектов. Поэтому names[row] имеет значение null.

Другие вопросы по тегам