setContentView (R.layout.main);ошибка - PullRequest
8 голосов
/ 14 мая 2011
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 ]

15 голосов
/ 12 июля 2012

Это просто случилось со мной минуту назад, но после некоторого изучения и прочтения этого поста я заметил это.

Существует пользовательский класс R с именем вашего приложения, поэтому при попытке импортировать отсутствующий класс (в Eclipse нажмите Ctrl + Shift + O, чтобы импортировать отсутствующие классы (Cmd + Shift + O на Mac)), вам следует см. два возможных класса нормальных:

import android.R;

И пользовательский класс с пространством имен вашего проекта:

import com.yourname.yourapp.R;

Если вы выберете пользовательский класс, проблема решена!

13 голосов
/ 17 мая 2011

Просто сделайте 2 шага, и проблема, скорее всего, будет решена:

Шаг 1: Очистите свой проект, нажав Project -> Clean.

Шаг 2: Перестройте свой проект, щелкнув Project -> Build All.

Также убедитесь, что XML-файлы макета не содержат синтаксических ошибок и у вас нет изображения с недопустимыми именами (например, "-" между именами изображений).

Также я прошу вас взглянуть на окно проблем и сообщить, какие ошибки там отображаются.

5 голосов
/ 27 июня 2011

Использование NetBeans 7.0:

Если вы исправите импорт до того, как R.java будет сгенерирован для вашего проекта (перед его сборкой в ​​первый раз), он добавит строку:

import android.R;

, который переопределит локальную R.java, на которую вы пытаетесь сослаться.

Удаление этой строки разрешило мне ошибки.

3 голосов
/ 24 ноября 2012

Шаг 1: импорт Android. *;

Шаг 2: очистка вашего проекта

Шаг 3: Наслаждайтесь !!!

1 голос
/ 28 апреля 2014

если у вас несколько пакетов с разными классами, это может сбить с толку: попробуйте это:

import имя_пакета_from_AndroidManifest.R;

0 голосов
/ 08 июня 2016

используйте код: setContentView (R.layout.activity_main); вместо setContentView (R.layout.main);

0 голосов
/ 10 октября 2015

Просто:

  1. Щелкните правой кнопкой мыши по вашему проекту.

  2. Перейти к свойствам.

  3. Выбор андроида (второй вариант на левой панели).

  4. Нажмите «Добавить ...» (в библиотеке), выберите ваш проект.

  5. Нажмите ОК.

  6. И, наконец, очистите ваш проект.

Если это не работает, убедитесь, что «android-support-v7-appcompat» есть в вашем Project Explorer.

Если его там нет, вы можете добавить его, импортировав простой проект из: C:/android-sdks\extras\android\support\v7\appcompat

0 голосов
/ 16 марта 2015

Эта проблема обычно возникает, если Eclipse случайно скомпилировал main.xml неправильно. Самое простое решение - удалить R.java из директории gen. Как только мы удалим, eclipse сгенерирует новую базу R.java на последнем main.xml

0 голосов
/ 17 мая 2011

это уже решено?

У меня тоже была эта проблема.Я решил это, просто очистив проект.

Проект> Очистить> Очистить проекты, выбранные ниже> Проверить [название вашего проекта]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...