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错误 展开
如果我改为 <string name="hello">Hello World, HelloActivity</string>(注意:我删除了最后那个感叹号),就会出现java.lang.NullPointerException错误 展开
3个回答
展开全部
因为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出错的处理办法)
忠告:如果确认程序的微小改动,导致程序出错,要耐心寻求答案,这样你才能处理更多类似的问题,对问题的实质更了解,才能更好的提高自己。
<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出错的处理办法)
忠告:如果确认程序的微小改动,导致程序出错,要耐心寻求答案,这样你才能处理更多类似的问题,对问题的实质更了解,才能更好的提高自己。
追问
太谢谢您了,我以为能设置两个满意答案 , 结果 ..... 就现在这个样子了 、 实在很抱歉
展开全部
改完之后,你可以选择project->clean,clean后你项目的R.java文件就会重新生成,所有的资源ID会重新分配,这样子你所修改的资源才能被Android真正识别,有时这个操作不是必要的,但是如果出现你修改了资源后,你的项目中出现了一些问题,那么执行Clean是一个必须的选择,这些资源包括drawable下的图片,布局里id的修改,values下资源的修改,你可以着手试一下
Good luck
Good luck
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不是吧。你再重新运行模拟器试一下。
更多追问追答
追问
应该和模拟器没关系
如果我进行上述修改,保存时也会出现java.lang.Null.PointerException错误
追答
保存都出现这个问题了?不至于啊,你别的地方有没有错误?
问题应该出在别的地方
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询