setContentView(R.layout.activity_main) Error解决方法

今天在写Android代码的过程中,编译器一直报错,错误出在这一行代码:

<span class="pln" style="PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px">setContentView</span><span class="pun" style="color:#66660;PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px">(</span><span class="pln" style="PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px">R</span><span class="pun" style="color:#66660;PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px">.</span><span class="pln" style="PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px">layout</span><span class="pun" style="color:#66660;PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px">.</span><span class="pln" style="PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px">activity_main</span><span class="pun" style="color:#66660;PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px">)</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 class="kwd" style="color:#0088;PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px">import</span><span class="pln" style="PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px"> android</span><span class="pun" style="color:#66660;PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px">.</span><span class="pln" style="PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px">R</span><span class="pun" style="color:#66660;PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px">;</span>

删掉这一句就正常了。
出现这个问题的原因是,如果你在R.java还没有来得及自动生成的时候选择了fix imports,那么Eclipse就会自动帮你导入android.R这个包,就会覆盖掉本地的R.java,所以就导致了你不能正常引用R.layout.activity_main.

public class MainActivity extends AppCompatActivity { private TextView resultText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); resultText = findViewById(R.id.result_text); findViewById(R.id.btn_0).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { appendText("0"); } }); findViewById(R.id.btn_1).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { appendText("1"); } }); // 添加其他数字按钮的 onClickListener findViewById(R.id.btn_add).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { appendText("+"); } }); findViewById(R.id.btn_subtract).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { appendText("-"); } }); // 添加其他运算符按钮的 onClickListener findViewById(R.id.btn_clear).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { clearText(); } }); findViewById(R.id.btn_equals).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { calculate(); } }); } private void appendText(String text) { resultText.append(text); } private void clearText() { resultText.setText(""); } private void calculate() { try { String expression = resultText.getText().toString(); Expression e = new ExpressionBuilder(expression).build(); double result = e.evaluate(); resultText.setText(Double.toString(result)); } catch (IllegalArgumentException ex) { resultText.setText("Error"); } }}
05-15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值