xml文件报错找不到资源(字符串、变量)解决方法(尚未解决,待续)

在调试程序时遇到XML文件中字符串资源未找到的问题,尽管已在string.xml中定义。问题在于R.java文件未包含该资源ID。通过检查R.java、清理项目以及修复XML错误,最终使资源ID出现在R.java中,但仍存在布局文件引用报错的未解决问题。

今天在调试程序时,本来打算在EditText中加入hint属性的,当然是在xml文件中添加。语句为:android:hint="@string/reg_hint_name"。变量reg_hint_name我是已经在string.xml文件中已经定义了的,但在使用上述语句时,Eclipse一直报找不到字符串reg_hint_name,但是我换成@string/reg_name是可以的,所以我一直想不通,为什么同样都在string.xml文件中定义了,reg_name可以而reg_hint_name就不可以了呢。

随后,我试图在网上查找答案,通过网上一些提示,我才突然意识到,在eclipse中,寻找变量时并不是在xml中定义了就可以的,资源的引用都是要通过R.java这个类来实现。换句话说,如果在R.java文件中没有定义的话,引用时也是会报出无法找到资源的错误。所以这也就提醒了我,在出现无法找到资源这个错误时,先要看在layout文件下的string.xml或者其他xml文件中有没定义,还要去查看下R.java文件中有没定义。

然后我就查看了下gen文件下的R.java文件,发现其定义了 reg_name的ID,但却没有定义reg_hint_name的ID,这也就解释了为什么同样都在string.xml中定义了,但eclipse却会产生不一样的结果。

接下来,就需要将reg_hint_name的ID加入到R.java文件中,手工添加也可以,但是当变量较多时,是很难做到的,而且容易出错。通过查资料获悉,可以通过Project->clean的方式解决,于是试了下,结果是,R.java不见了,有点慌。再一查,说是重新启动一遍,照做。发现还是没有,分析可能是xml中存在错误,查找修改完毕,重新启动eclipse,R.java出现了,有点激动,打开一看,reg_hint_name出现了,ID有了。

在执行完上述的操作后,变量reg_hint_name在R.java中也有了,但不知道为什么,在layout/register.xml文件中使用android:hint="@string/reg_hint_name"仍然报错,目前没有找到解决办法,在register.java中测试过,使用下述语句是没有问题的:

et_password = (EditText)findViewById(R.id.et_name);
et_password.setText(R.string.reg_hint_name);

已经折腾太久,先把这个问题先放放吧,待反过来解决。(备注:若有朋友有解决方法,也请告诉我,谢谢!)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值