今天在写Android代码的过程中,编译器一直报错,错误出在这一行代码:
<span style="font-size:18px;"><span style="margin: 0px; padding: 0px;">setContentView</span><span style="color:#66660;margin: 0px; padding: 0px;">(</span><span style="margin: 0px; padding: 0px;">R</span><span style="color:#66660;margin: 0px; padding: 0px;">.</span><span style="margin: 0px; padding: 0px;">layout</span><span style="color:#66660;margin: 0px; padding: 0px;">.</span><span style="margin: 0px; padding: 0px;">activity_main</span><span style="color:#66660;margin: 0px; padding: 0px;">)</span> </span>
提示信息是:
activity_main cannot be resolved or is not a field
我就觉得很奇怪,我在R.layout里面明明看到自动生成了默认的布局activity_main,为什么在这里引用就出错呢。Google之也没发现原因,而且,如果删掉activity_main,Eclipse给出的自动提示是activity_list_item.我当时就觉得可能是导入的某个包覆盖了我真正要引用的R.java.
然后在import里面果然找到了这么一句:
<span style="font-size:18px;color:#0088;margin: 0px; padding: 0px;">import</span><span style="font-size:18px;"><span style="margin: 0px; padding: 0px;"> android</span><span style="color:#66660;margin: 0px; padding: 0px;">.</span><span style="margin: 0px; padding: 0px;">R</span><span style="color:#66660;margin: 0px; padding: 0px;">;</span> </span>
删掉这一句就正常了。
出现这个问题的原因是,如果你在R.java还没有来得及自动生成的时候选择了fiximports,那么Eclipse就会自动帮你导入android.R这个包,就会覆盖掉本地的R.java,所以就导致了你不能正常引用R.layout.activity_main.