Android程序中的strings.xml文件 中string类型的变量为什么一修改就出现java.lang.NullPointException错误

例如strings.xml中有<stringname="hello">HelloWorld,HelloActivity!</string>如果我改为<stringname... 例如strings.xml中有 <string name="hello">Hello World, HelloActivity!</string>

如果我改为 <string name="hello">Hello World, HelloActivity</string>(注意:我删除了最后那个感叹号),就会出现java.lang.NullPointerException错误
展开
 我来答
cx_chauncey
2012-08-31
知道答主
回答量:4
采纳率:0%
帮助的人:5.9万
展开全部
因为Eclipse是一个IDE工具,他的反应并不是总是那么智能,你最重要的是明白:工程目录下各个文件的关系,任何改动都要保证R.java文件伴随改动(他有时候不是那么听话的)。

<string name="hello">Hello World, HelloActivity</string>
这句话在R.java 中 表现为

int hello = 0x12345678;

实际是把XML文件中的数据看成类:
R.java中的数据就是这个类实例的引用地址。
为了表示区别用hello1 和hello2 表示你改变前后的字符串

String hello1 = “Hello World, HelloActivity!”;

当你改动的时候又产生一个字符串,

String hello2 = “Hello World, HelloActivity”;

如果IDE工具足够智能他就删除前一个hello1用hello2代替,但是有些时候他没有,R中0x12345678依然指向hello1 但是他已经不存在了 被更改为Hello2了 但是hello2 没有在R中 注册,程序查询不到他。所以报错。

解决办法:project->clean clean是是的整个工程重建。R.java会重建 其中的整形数组(就是引用地址)会重新和资源相互对应。(R.java经常会出错去找一下R.java出错的处理办法)

忠告:如果确认程序的微小改动,导致程序出错,要耐心寻求答案,这样你才能处理更多类似的问题,对问题的实质更了解,才能更好的提高自己。
追问
太谢谢您了,我以为能设置两个满意答案 , 结果 .....  就现在这个样子了 、 实在很抱歉
ljlkings
推荐于2016-08-18 · TA获得超过157个赞
知道小有建树答主
回答量:202
采纳率:0%
帮助的人:149万
展开全部
改完之后,你可以选择project->clean,clean后你项目的R.java文件就会重新生成,所有的资源ID会重新分配,这样子你所修改的资源才能被Android真正识别,有时这个操作不是必要的,但是如果出现你修改了资源后,你的项目中出现了一些问题,那么执行Clean是一个必须的选择,这些资源包括drawable下的图片,布局里id的修改,values下资源的修改,你可以着手试一下
Good luck
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鸡忆生瓜之睛1G
2012-08-17 · TA获得超过428个赞
知道小有建树答主
回答量:424
采纳率:0%
帮助的人:234万
展开全部
不是吧。你再重新运行模拟器试一下。
更多追问追答
追问
应该和模拟器没关系
如果我进行上述修改,保存时也会出现java.lang.Null.PointerException错误
追答
保存都出现这个问题了?不至于啊,你别的地方有没有错误?
问题应该出在别的地方
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式