我在源代码的以下行收到NullPointerException:
String value = Values.get("name").toString();
导致力量关闭错误。最近我用这个问题一直在摸不着头脑......对此非常感谢。我真的需要弄清楚这个问题的来源(以及如何解决它)。
提前致谢!
我的完整来源比SO允许的字符数限制略长 - 所以我在这里将其复制到谷歌文档:
https://docs.google.com/document/d/1L-dC7eM3E1FJupqPRJbFrvppNHOwaTC5YUSg6nuaHXY/edit?usp=sharing
P.S。
之前我问了一个类似的问题 - 但是这个帖子和这个帖子都没有导致修复 - 所以我不确定在这一点上应该重新打开哪个线程 - 但是我真的需要一些帮助来解决这个问题!
答案 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();