2013-03-11 2 views
1

Мой код выглядит следующим образом:DatabaseHandler.close() - Null исключение указатель даже если флажок

if (dbHandler != null) dbHandler.close(); 

Как можно получить NullPointerException на этой линии? Похоже, я получаю NPE внутри системных функций SQLite.

Конечно, есть более похожие функции, но основная структура продемонстрирована, я думаю. Странно то, что это случилось с одним пользователем (по крайней мере, мы не знаем о других). Устройство должно быть Samsung SII с Android 4.0.4

EDIT решаемые переписывания databaseHandler, Propably было несколько больше экземпляров опасности.

+0

Что такое 'dbHandler'? Это ваш класс? – Sam

+1

@ Сэм, я не видел твой комментарий. Я просто удалил мой. –

+0

У вас есть несколько потоков, которые обращаются к базе данных? Я открываю свою базу данных только в классе приложения один раз и никогда не закрываю ее. – WarrenFaith

ответ

-1

Мне было интересно узнать о том же самом (см. Приведенный выше код). Просто не имеет смысла, что это происходит.

0

Возможно, что ваш объект dbHandler имеет ссылку на SQLiteDatabase, которая равна NULL.

+0

Возможно. Но не закрывает() управление для нулевой базы данных? 'public synchronized void close() { if (mIsInitializing) throw new IllegalStateException (« Закрыто во время инициализации »); if (mDatabase! = Null && mDatabase.isOpen()) { mDatabase.close(); mDatabase = null; } } ' – PetrD

+0

Не могли бы вы включить код для вашего класса DatabaseHandler. –

+0

Ive обновил вопрос – PetrD

Смежные вопросы