缺少jar源附件,线程异常,空指针异常,当试图从Android上的SQLite数据库读取



我正在Eclipse中编写一个Android项目,并在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.

我觉得这两条消息都没有帮助。我的代码一直工作到上面这一行,但是没有进入DataBaseHelper类中的fetch()。我知道这个类(包括open()、create()、fetch()等)是有效的,因为它来自http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/,并且我使用相同的DataBaseHelper类编写了具有相同数据库文件的另一个程序。除了张贴我的900行代码,让别人通过和帮助我,我应该寻找什么,可能会导致这个问题?

当然,这是个愚蠢的小错误。我有两个myDbHelper。修复了这个问题,现在它工作了!

在哪里实例化myDbHelper

链接到的源代码有

DataBaseHelper myDbHelper = new DataBaseHelper();

你确定你没有遗漏这个吗?

同样,在调试时,堆栈跟踪具有巨大的价值-您删除的blah blah部分可能指向确切的行,其中发生了NPE,这应该给您一个关于哪个引用为空的巨大提示。共享这些信息——它发生在你的代码的确切行——使我们更容易帮助你。

最新更新