Подтвердить что ты не робот

Ошибка "id не может быть разрешена или не поле"?

Я продолжаю получать эту ошибку. Должен ли я просто сделать id поле?

Мой код:

public void onCreate(Bundle icicle) 
{
    super.onCreate(icicle);
    setContentView(R.layout.main);
    ImageView mainimage = (ImageView) findViewById(R.id.mainanim);
    mainimage.setBackgroundResource(R.anim.mainanim);
    mainanimation = (AnimationDrawable) mainimage.getBackground();
}

Как именно вы это исправите?

4b9b3361

Ответ 1

Не изменяйте класс R. Ошибка означает, что в ваших XML-макетах что-то синтаксически неправильно, а R не может быть автоматически сгенерировано. Попробуйте найти там и разместите xml-код, о котором вы не уверены, если он есть.

Изменить: также: удалить "import android.R" из импорта в верхней части файла (если есть)

Ответ 2

Посмотрите на свои операторы import вверху. Если вы говорите import android.R, то это проблема. Возможно, это не единственный, поскольку эти ошибки "R" могут быть сложными, но определенно определенно, по крайней мере, часть проблемы.

Если это не исправить, убедитесь, что ваш плагин eclipse (ADT) и ваш SDK Android полностью обновлены, удалите проект из эмулятора/телефона, вручную удалив его из ОС и очистив проект ( Запустите Eclipse- > Project- > Clean...). Звучит глупо, чтобы убедиться, что ваш материал полностью обновлен, но в более ранних версиях ADT и SDK появилось много раздражающих ошибок, связанных с R файлами, которые с тех пор были очищены.

Просто FYI, материал, который появляется в классе R, генерируется из материала в папке res res (aka resources). Класс R позволяет ссылаться на ресурс (например, изображение или строку) без необходимости выполнять операции с файлами по всему месту. Он делает и другие вещи, но это для другого ответа. Android OS использует аналогичную схему - у нее есть папка ресурсов, а класс android.R - это способ доступа к материалам в папке ресурсов Android. Проблема возникает, когда в одном классе вы используете как свои собственные ресурсы, так и стандартные ресурсы для Android. Обычно вы можете сказать import вверху, а затем ссылаться на класс, используя только последний бит имени (например, import java.util.List позволяет просто написать List в вашем классе, а компилятор знает, что вы имеете в виду java.util.List). Когда вам нужно использовать два класса, которые называются одинаковыми, как в случае с автоматически генерируемым R-классом, вы можете импортировать один из них, и вы должны полностью квалифицировать другой, когда хотите его обозначить. Обычно я импортирую R файл для своего проекта, а затем просто говорю android.R.whatever, когда я хочу ресурс android.

Кроме того, чтобы повторить Энди, не изменяйте файл R автоматически. Это не то, как оно предназначалось для использования.

Ответ 3

Одно из возможных решений: -

Резюме: убедитесь, что вы используете import com.yourpkgdomainname.yourpkgappname.R вместо import android.R

Подробности: Проблема возникла, когда я изменил идентификатор метки, которая была передана в других местах в XML файле макета. Из-за этой ошибки файл R прекратил генерировать сперва. Eclipse плохо справляется с ошибками с файлами макета.

Когда я исправил идентификационную ссылку (при очистке проекта несколько раз и перезапуск Eclipse, я заметил, что у моих пакетов импорта теперь есть:
import android.R

Изменение его на следующую фиксированную ошибку:
import com.example.app.R

Ответ 4

Я просто исправил свою проблему, щелкнув правой кнопкой мыши в папке макета и нажав кнопку "Проверить". Появятся некоторые окна, вы просто кликны в порядке и отлично.

Ответ 5

Может быть, вы создали новый XML файл в каталоге макетов, имя файла, содержащее "Стоковое письмо", которое не разрешено в XML файле в разделе "Каталог макетов".

Надеюсь на эту помощь.

Ответ 6

Просто выбросьте это, но попробуйте вручную перерисовать вещи. Там есть вероятность, что ваши кавычки являются "неправильными", так как есть похожий символ юникода, который выглядит аналогичным, но не является кавычкой.

Если вы копируете/вставляете фрагменты кода с веб-сайта, это может быть вашей проблемой.

Ответ 7

Как уже упоминал Джейк, проблема может быть из-за кода копирования/вставки. Проверьте main.xml под res/layout. Если в этом поле нет поля id, у вас есть проблема. Типичный пример будет ниже

<com.androidplot.xy.XYPlot
android:id="@+id/mySimpleXYPlot"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="10px"
android:layout_marginLeft="20px"
android:layout_marginRight="20px"
title="A Simple Example"
/>

Ответ 8

Несколько раз затмение может путать с другими проектами в том же каталоге.

Просто измените имя пакета (не забудьте также изменить файл манифеста Android), убедитесь, что имя пакета не используется уже в каталоге. Это может сработать.

Ответ 9

Просто натолкнулся на это сам.

Наконец-то выяснилось, что моя проблема связана с файлом .png, который я добавил, который имел заглавную букву, вызвал точно такую ​​же проблему. Eclipse никогда не помещал файл, пока я его не закрыл, и не запустил Eclipse.

Ответ 10

Как мне кажется, проблема в том, что я просто исправил мою проблему, если кто-то задавался вопросом. Из-за других ошибок я отключил сборку автоматически, когда я создал новый проект, он сказал, что у R.layout.main возникла проблема и необходимо импортировать Р; Так естественно, как новичок, я сделал. Затем я построил вручную, и у него была проблема с main. Попробуйте создать свою программу как есть, удалите импорт R, и все должно быть хорошо.

Ответ 11

Это дало мне достаточно боли, но я нашел решение:

PROJECT ---> Clean ----> (Sele)

Ответ 12

В main.xml (или везде, где ваш элемент определен) убедитесь, что идентификатор для элемента R определен с помощью @+id/... Вот пример с кнопкой:

<Button android:text="B1" android:id="@+id/button_one"
        android:layout_gravity="center_horizontal|center"
        android:layout_height="fill_parent" android:layout_width="wrap_content" />

Каждый из них важен, потому что:

  • @ должен предшествовать строке
  • + указывает, что он будет создан, если не существует (независимо от вашего элемента)

Ответ 13

У меня также была эта ошибка, когда я работал в классе Java один раз. Моя проблема состояла в том, что мой xml файл со ссылками в нем не был сохранен. Если в вкладках есть как файл xml, так и класс java, убедитесь, что имя файла xml на вкладке не содержит *.

Надеюсь, что это поможет.

Ответ 14

Просто очистите проект, чтобы R автоматически сгенерировался. Это сработало для меня.

Ответ 15

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

Ответ 16

Для меня причиной проблемы было то, что у меня было 2 изображения с тем же именем в папке drawable-hdpi. Как только я это разрешил, тогда Р.Ява перестроился и проблема была автоматически решена.

Ответ 17

выберите вкладку "Проект" и нажмите "Построить автоматически", чтобы активировать функцию "Создать все", а затем нажать "Создать все" и всегда начинать имя файла xml с помощью строчной буквы.