的setContentView(R.layout.main);错误

时间:2011-05-14 15:21:59

标签: java android eclipse

package com.elfapp;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {

    private Button btn_Login;
    private EditText et_UserName;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        btn_Login = (Button) findViewById(R.id.button_login);
        btn_Login.setOnClickListener(this);

        et_UserName = (EditText) findViewById(R.id.editText_userName);
    }

    public void onClick(View v) {
        if (v.equals(btn_Login)) {
                // skriver ut en toast när man klickar på knappen
            Toast.makeText(MainActivity.this, "Ansluter till server...", Toast.LENGTH_SHORT).show();

                // används i debuggern för att påvisa att programmet exekverat hit
            Log.v("ThisApp", "onClick Successful");

                // TODO skickar det som står i et_UserName till controller (genom TCP/IP), som ska kolla om användaren finns
            // send et_UserName.getText().toString() to controller

                // if(username exists)
            Intent intent = new Intent(this, RoomActivity.class);
            this.startActivity(intent);
        }
    }

}

我在包含setContentView(R.layout.main);的行上收到错误 不确定错误/异常是什么,因为我不习惯在Eclipse中工作..

9 个答案:

答案 0 :(得分:15)

这只是在一分钟前发生在我身上,但经过一段时间的研究,看了这篇文章,我注意到了这一点。

有一个带有你app名称的自定义R类,所以当你尝试导入缺少的类时(在Eclipse中,按Ctrl + Shift + O导入缺少的类(Mac上的Cmd + Shift + O)),你应该看两个正常的正常类:

import android.R;

带有项目命名空间的自定义类:

import com.yourname.yourapp.R;

如果您选择自定义类,问题就解决了!

答案 1 :(得分:13)

只需采取两个步骤,问题就更有可能得到解决:

第1步: 单击项目 - >清理项目;干净。

第2步: 单击Project - >重建项目。全部构建。

还要确保您的布局xml文件没有语法错误,并且您没有任何具有不可接受名称的图像(例如图像名称之间的“ - ”)。

另外,我请求您查看问题窗口,让我知道那里显示的错误。

答案 2 :(得分:4)

使用NetBeans 7.0:

如果在为项目生成R.java之前修复导入(在第一次构建它之前),它将添加以下行:

import android.R;

将覆盖您尝试引用的本地R.java。

删除该行可以解决我的错误。

答案 3 :(得分:3)

第1步:         import android。*;

第2步:         清理你的项目

第3步:         享受!!!

答案 4 :(得分:1)

如果您有多个包含不同类的包,那么会让人感到困惑:试试这个:

import package_name_from_AndroidManifest.R;

答案 5 :(得分:0)

这已经解决了吗?

我也有这个问题。我只是通过清理项目来解决它。

项目>清洁>清除下面选择的项目>检查[您的项目名称]

答案 6 :(得分:0)

如果eclipse意外地错误地编译了main.xml,通常会发生此问题。 最简单的解决方案是删除gen目录中的R.java。 一旦我们删除,eclipse将在最新的main.xml上生成新的R.java基础

答案 7 :(得分:0)

简单地:

  1. 右键点击您的项目。

  2. 转到属性。

  3. 选择android(左侧面板中的第二个选项)。

  4. 点击“添加...”(在库中),选择您的项目。

  5. 点击确定。

  6. 最后,清理你的项目。

  7. 如果这不起作用,请确保项目浏览器中有“android-support-v7-appcompat”。

    如果不存在,您可以通过从C:/android-sdks\extras\android\support\v7\appcompat

    导入一个简单项目来添加它

答案 8 :(得分:0)

使用代码:setContentView(R.layout.activity_main);而不是tosetContentView(R.layout.main);