Main не может быть разрешен или не является полем

Эта ошибка возникает в строке setContentView в этом фрагменте кода:

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

Я понимаю, что для того, чтобы R.layout.main был разрешен, должен присутствовать файл с именем res/layout/main.xml.

Он присутствует и действителен (т.е. Eclipse отмечает его как безупречное без ошибок). Итак, что еще может вызвать эту ошибку?

Кстати, я уже пробовал Project > Clean. Ошибка сохраняется.

Ответ 1

Удостоверьтесь, что у вас нет этого в ваших ввозах:

import android.R;

а

import your.application.packagename.R;

Ответ 2

Также попробуйте: добавить

import your.application.packagename.R;

и выполните: eclipse- > project- > чистый..

Ошибка должна исчезнуть.

Ответ 3

Если это проблема, с которой вы сталкиваетесь, тогда проверьте вверху своего кода - вы увидите:

import android.R

Удалите эту строку и измените ее на

import (com.xx.yy)

Замените (com.xx.yy) свое фактическое имя пакета для класса. Эта проблема возникает, главным образом, при копировании всего кода XML и Java другого приложения и вставки его в новое приложение.

Это пример того, как я заменил пакеты android.R в одном из моих собственных приложений (игра-головоломка):

package com.pir.PUZZLEGAME_NEW;

import com.pir.PUZZLEGAME_NEW.*;
import com.pir.puzzlegame_old.R;

Удачи!

Ответ 4

Удалите все ваши операторы импорта из класса, в котором вы получаете это сообщение об ошибке.

Затем нажмите ctrl + shift + o

Ответ 5

Кроме того, иногда он еще не будет компилироваться даже после внесения необходимых изменений; но если вы пойдете вперед и запустите приложение, ошибки будут проясняться.

Ответ 6

Если вы используете eclipse, то

  • Удалите все ваши операторы импорта из класса, в котором вы получаете это сообщение об ошибке.

  • нажмите CTRL + SHIFT + O → ИЛИ выберите "Источник из меню" и выберите "Упорядочить импорт".. Это импортирует все необходимые классы.

Примечание. Поскольку у вас есть локальный файл R.class, он будет импортировать ваш локальный файл вместо файла android.R.

Надеюсь, это поможет кому-то.

Ответ 7

Я удалил следующую строку, и это сработало для меня.

import android.R;

Ответ 8

Я изменил

   import android.R;

to

 import your.application.packagename.R;

И проект → очистить по-прежнему ошибку.

Но когда я запустил проект, ошибка автоматически исчезла, может быть проблема Eclipse.

Ответ 9

для меня изменение

import org.opencv.R;

to

import com.example.opencvtryagain.R;

решил его, где, поскольку мое имя пакета было com.example.opencvtryagain;