今天新增了一个安卓项目,刚做完布局,发现有个R.id找不到了,于是clean了一下,这下出问题了,发现各处的R.id都找不到,报错。结果一看是R.java没了
然后是各种百度,有说重新clean的,有说 Android Tools -> fix project propertities的,不过都不起作用。然后继续百度,看到一个普遍的观点是说,只要xml文件有问题,那系统是绝对不会为你自动生成R.java的。
然后记得好像每次clean的时候控制台确实会报关于xml的错,于是重新clean,并观察控制台:
[2014-09-11 20:19:32 - RunTracker] C:\Users\Administrator\workspace\RunTracker\res\menu\run.xml:6: error: Error: No resource found that matches the given name (at ‘title‘ with value ‘@string/action_settings‘).
[2014-09-11 20:19:39 - RunTracker] W/ResourceType( 5888): ResXMLTree_node size 0 is smaller than header size 0x45.
如下图:
看出来了,大意是说menu\run.xml中引用了名为action_setting的字符串资源,但是在strings.xml中找不到。这下有点眉目了,然后打开menu\run.xml,果然有这回事:
- <item
- android:id="@+id/action_settings"
- android:orderInCategory="100"
- android:title="@string/action_settings"
- app:showAsAction="never"/>
再看看strings.xml,确实没有action_settings这一项,好像是一开始就被删掉了。
删掉这个<item>,然后重新clean,R.java果然重新生成了。问题解决。