致命异常:java.lang.NullPointerException

时间:2013-08-08 15:56:47

标签: java android arraylist nullpointerexception forceclose

我在源代码的以下行收到NullPointerException:

    String value = Values.get("name").toString();

导致力量关闭错误。最近我用这个问题一直在摸不着头脑......对此非常感谢。我真的需要弄清楚这个问题的来源(以及如何解决它)。

提前致谢!

我的完整来源比SO允许的字符数限制略长 - 所以我在这里将其复制到谷歌文档:

https://docs.google.com/document/d/1L-dC7eM3E1FJupqPRJbFrvppNHOwaTC5YUSg6nuaHXY/edit?usp=sharing

P.S。

之前我问了一个类似的问题 - 但是这个帖子和这个帖子都没有导致修复 - 所以我不确定在这一点上应该重新打开哪个线程 - 但是我真的需要一些帮助来解决这个问题!

2 个答案:

答案 0 :(得分:1)

你有......(小'v')

values.put("name", nameArr.get(i));

失败的地方......(大'V')

Values.get("name").toString();

你的意思是......(小'v')

values.get("name").toString();

答案 1 :(得分:0)

这意味着String value = Values.get("name").toString();有一个空值,可能Values.get("name")等于null

或者可能是Values本身为空。

尝试在值上调试和设置监视,或者只需执行以下操作:

System.out.println(Values);
System.out.println(Values.get("name");

或在Android中你可以记录:

Log.d()

修改

另外,查看您的代码:尝试记录nameArr,看看您是否从流中获取了任何内容。

EDIT2 请看这里:http://agile.csc.ncsu.edu/SEMaterials/tutorials/eclipse-debugger/如何使用eclipse调试器。从现在开始,它对你来说非常有用。

编辑3 我认为你应该从

改变你的方法定义
void showNotification()

static void showNotofication()或从值声明中删除静态。

字段是静态的这一事实意味着它不属于类的实例,而只是属于类本身,如果这是有意义的。您拥有showNotification()的方法不是静态的,因此它属于类的实例。

如果要将值保持为静态,则应调用showNotification中的方法从XML中提取数据,如下所示

ClassName.staticMethod1(); 
ClassName.staticMethod2();