При попытке чтения из базы данных SQLite на Android отсутствуют исходные вложения jar, исключения потоков, исключения нулевых указателей - PullRequest
0 голосов
/ 28 июля 2011

Я пишу проект Android в Eclipse и запускаю его на планшете 3.1.

Когда я пытаюсь извлечь строку из базы данных SQLite с помощью

int Get(long rowId){
    System.out.println("Works up to here!!!"); //things are fine
    Cursor c = myDbHelper.fetch(rowId); //things are not fine
    ...
}

, я получаюследующее в logcat:

Works up to here!!!
threadid=9: thread exiting with uncaught exception (group=0x40142760)
FATAL EXCEPTION: Thread-10
java.lang.NullPointerException 
    at blah blah blah...

И когда я отлаживаю, это же место дает мне

The JAR file ...\android.jar has no source attachment.

Я не считаю ни одно из этих сообщений полезным.Мой код работает вплоть до указанной выше строки, но не входит в fetch () в моем классе DataBaseHelper.Я знаю, что класс (включая open (), create (), fetch () и все такое) работает, потому что он из http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/, и я написал другую программу с тем же файлом базы данных, используя тот же класс DataBaseHelper.Если не считать публикации моих 900 строк кода, чтобы кто-то мог пройти и помочь мне, что я должен искать, что может быть причиной этой проблемы?

Ответы [ 2 ]

0 голосов
/ 28 июля 2011

Где вы создаете экземпляр myDbHelper?

Исходный код связан с

DataBaseHelper myDbHelper = new DataBaseHelper();

ты уверен, что не пропустил это?

Кроме того, во время отладки трассировка стека имеет огромное значение - вырезанная вами часть blah blah, вероятно, указывает на точную линию, где происходит NPE, что должно дать вам огромный намек на ссылка не указана Обмен этой информацией - в какой именно строке вашего кода она встречается - значительно упрощает нашу помощь.

0 голосов
/ 28 июля 2011

Конечно, это была маленькая глупая ошибка. У меня было два "myDbHelper". Исправлено, и теперь это работает!

...