Android - Как восстановить класс R?

Возможный дубликат:
Разработка для Android в Eclipse: R.java не генерирует

Я импортировал проект в свою среду Eclipse, но это дало мне ошибку, так как файл R не генерируется автоматически.

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

Ответ 1

Хорошо, я исправил его:

Когда я изменил манифест на целевую версию 1.5, появилось миллион ошибок, и только одно не было связано с неспособностью класса R - в атрибутах файла манифеста "targetSdkVersion" и "maxSdkVersion" не было в sdk 1.5

Из-за этого класс R не смог сгенерировать.

Ответ 2

В fooobar.com/questions/21546/..., кто-то ответил на это: вы должны избавиться от предупреждений и ошибок (синтаксиса и ссылок) в ваших xml файлах. Этот плюс делает проект clean/build.

Project → Clean и выберите вариант для создания проекта.

Ответ 3

Я обнаружил, что это происходит со сломанной компоновкой, и все взрывается. Расслабьтесь, это как эта старая ошибка, когда вы впервые научились программированию, где вы забыли одну точку с запятой, и она генерирует сто ошибок. Много паники, нажмите все кнопки и усугубит ситуацию.

Решение

  • Убедитесь, что все ссылки R. не разбиты. Если он сломан, ADK может не восстановить R. Исправить все ошибки в ваших XML файлах.
  • Если вы каким-то образом нажмете что-то и создали import android.R в своей деятельности, удалите его.
  • Запустите Проект → Очистить. Это приведет к удалению и восстановлению R и BuildConfig.
  • Убедитесь, что отмечен Проект → Создать автоматически.
  • Подождите несколько секунд, пока ошибки не исчезнут.
  • Если это не работает, удалите все внутри папки /gen/folder
  • Если он все еще не работает, попробуйте щелкнуть правой кнопкой мыши свой проект → Инструменты Android → Исправить свойства проекта.

Что делать, если R не регенерирует

Обычно это происходит, когда у вас есть сломанный xml файл.

  • Проверьте ошибки внутри ваших XML файлов, в основном в папке /res/folder
  • Обычные места - это /layout/and/values ​​/особенно, если вы недавно изменили одну из них.
  • Проверьте AndroidManifest.xml, я нахожу, что часто меняю строку и забываю изменить имя строки из AndroidManifest.xml.
  • Если вы не можете найти проблему. щелкните правой кнопкой мыши /gen/ → Восстановить из локальной истории... → отметить R.java → нажмите Восстановить. Это не решает проблему, но устраняет лишние ошибки, чтобы облегчить поиск проблемы.

Я знаю, что здесь уже много ответов, но это первая ссылка на Google, поэтому я комментирую здесь все советы и надеюсь, что это поможет кому-то новому в этом:)

Ответ 4

У меня была аналогичная проблема, когда файл R.java не восстанавливался после того, как я добавил некоторые значки и файлы макета. Я пробовал очистить и перестроить, и с тех пор все ухудшилось, и исходный файл R.java исчез и все еще не был восстановлен. В конце концов мне стало ясно, что для компилятора должны быть ошибки компилятора, которые генерируют R.java, и нам не показывают те, которые находятся в консоли. К счастью, я заметил ранее, что

  • Это ошибка, если один .xml файл ссылается на другой, который не существует, и
  • Это ошибка, когда в именах файлов есть буквы верхнего регистра (почему это запрещено, я ЛЮБЛЮ случай с верблюдом).

В любом случае, после переименования моих значков и .xml файлов во все строчные буквы, а затем для исправления всех ссылок внутри .xml файлов, voila, R.java был регенерирован. Как раз вовремя, чтобы чувствовать себя хорошо, когда я остановился на обед: -)

Ответ 5

Чтобы снова создать R файл:

  • Измените что-то в layout- > activity_main.xml
  • Сохранить файл
  • Project- > Clean...

Просто удалите файл R, расположенный в каталоге gen, а затем попробуйте Project- > Clean. Затем снова создайте приложение.

Ответ 6

Вы также можете щелкнуть правой кнопкой мыши по project -> Android Tools -> Fix Project Properties. Это должно привести к тому, что класс R.java будет сгенерирован.

Ответ 7

Моя проблема была в файле Manifiest. Я удалил иконки запуска и не ссылался на новые в Manifiest:)

Ответ 8

Я снова открываю eclipse, редактирую один из моих xml файлов, а затем обнаруживаю, что мой класс активности ссылался на android.R вместо моего пакета "R": -)

Ответ 9

Чтобы регенерировать R.class, вам придется попробовать несколько методов.

  • Удалите любые R-импорт из ваших исходных файлов java: import R.android
  • Обязательно откройте панель "Проблемы", перейдя в Window- > Show view- > Problems
  • Если у вас есть некоторые ошибки в ваших ресурсах xml, вам нужно будет исправить эти ошибки. В моем случае мне пришлось изменить атрибуты id, чтобы включить знак "+" следующим образом: android:id="@+id/grp_txt"
  • Теперь перейдите к Project- > Clean
  • Наконец, Project- > Close, Project- > Open

Знак "+" указывает новый идентификатор ресурса и заставляет инструмент aapt создавать новое целочисленное значение ресурса в классе R.java.

Ответ 10

Если вы используете Intellij IDEA, вы можете щелкнуть Build - Rebuild Project

Ответ 11

Если вы случайно удалили свой R в затмении "чистым проектом" (не делайте этого) Rightclick на вашем Projectfile → Восстановить из локальной истории...

воссоздайте свой R

Мой случай:

  • Сломанный xml вызвал ошибку в R. (из-за ä, ö, ü, букв в id)
  • чистый проект удалил мой R.

Что я сделал:

  • воссоздан R из локальной истории
  • проверено на наличие неправильных R-импорта в моих классах (например, import android.R) и удалено их.
  • исправил этот xml файл и сохранил его содержимое во внешнем txt файле
  • полностью удалил xml из моего проекта.
  • выполнил мой проект один раз
  • поставьте исправленный xml на свое место

и...

  • дала моей девушке большое объятие без причины после волнения, как Халк.

Ответ 12

Моя проблема заключалась в ошибках в моих XML файлах. Ошибки не всегда автоматически обнаруживаются в Android Common XML Editor или в Android Common Manifest Editor, поэтому попробуйте вместо этого использовать обычный текстовый редактор. Например, какая-то случайная бред из файла .java была вставлена ​​в мои файлы manifest и strings.xml.

Щелкните правой кнопкой мыши на любом файле XML (скорее всего, в папке /res или AndroidManifest.xml) и нажмите "Открыть с", затем выберите "Текстовый редактор". Убедитесь, что все выглядит хорошо, а затем сохраните. Кроме того, обязательно включите "Build Automatically" для вашего проекта. Я удалил файл R.java и был перестроен с нуля, поэтому нет необходимости восстанавливать его из локальной истории.

Ответ 13

Попробуйте добавить новый "файл Android XML", например, в папку /res/layout. Это может привести к тому, что плагин будет регенерировать класс R.

Ответ 14

Вы можете просто изменить любые xml файлы в папке /res и даже просто добавить пробел и сохранить, он будет восстановлен.

Ответ 15

У меня была та же проблема - "R" отсутствует. И ни один из приведенных здесь советов не помог. К счастью, я нашел причину - как-то Eclipse потерял цель Project-Properties. Это было неуместно. Я до сих пор не знаю, что это сделал, но помогло. Таким образом, внимание - отсутствует R может означать недостающую цель тоже!

Ответ 16

Я пробовал все вышеперечисленные решения. Но, к сожалению, это не решило мою проблему. Моя R.java исчезла, как только я вложил новую картинку в мою папку. После прочтения ответов на этот вопрос я попытался удалить значок, который у меня есть ранее вставленный (при сборке автоматически включен), и все было в порядке. Надеюсь, это поможет кому-то!

Ответ 17

У меня была эта проблема, и я просто щелкнул правой кнопкой мыши на пакете моего проекта и Build Project. Мгновенно класс R появился в пакете gen.

Ответ 18

Если кто-то найдет этот поток в Google, как и я:

У меня была какая-то проблема на некоторое время, и после некоторого рытья я заметил, что файл R.java был правильно построен, но был проигнорирован только для одного моих исходных файлов. Проблема для этого конкретного файла заключалась в том, что Eclipse "помог" добавила следующую строку вверху:

import android.R;

Это эффективно скрывает материал проекта R. Просто удалите его, и все будет хорошо снова...

Ответ 19

Вы можете использовать Eclipse "Восстановить из локальной истории", чтобы восстановить старый R файл, если он был удален. После этого вы можете увидеть, что заставляет Eclipse создавать ваши файлы (я видел другие ошибки, чем раньше, что действительно помогло устранить проблему).

Ответ 20

Возможно, вы можете перейти к свойствам проекта и выбрать вариант Android, а затем определить цель для проекта. Когда вы примените выбранный целевой API для этого проекта, он автоматически сгенерирует R.java.

Ответ 21

В основном проблема с недопустимым файлом макета. Откройте представление "Проблемы" и найдите erros в файлах макета XML. Исправьте их, и класс R будет воссоздан.

В моем случае не было реальной ошибки. Представление проблемы показало ошибку в макете xml. Редактор также показал ошибку xml. Просто переформатируйте xml с помощью автоматического форматирования с помощью 'ctrl-f' 'исправлено "ошибка xml", и был восстановлен класс R.

Ответ 22

Вы можете просто удалить файл R.java из своего проекта, и он будет регенерировать, если вы автоматически создадите его. Если у вас нет встроенной автоматической активации, просто перейдите в проект- > построить все

Ответ 23

Для меня это значение параметра String не определено... после того, как я добавил его вручную в Strings.xml, класс R был автоматически регенерирован!

Ответ 24

Эта проблема обычно возникает при импорте из существующего проекта. Попытайтесь исправить все ошибки из всех .xml файлов в папке res, а также в файле Манифест. Скорее всего, ошибки отображаются с параметром " match_parent", измените его на " fill_parent". Когда все ошибки будут ясны, появится R.java.

Если в любом XML файле нет ошибки. Попробуйте отредактировать любой xml файл (например, удалить письмо и набрать его), а затем сохранить файл, это приведет к генерации R.java.

Ответ 25

У меня проблема, что findViewById(R.id.edit_text), но возвращает TextView не EditText. Я думаю, проблема в том, что у класса R.id есть неправильный идентификатор, тогда я очищаю проект, тогда его работы прекрасны.

Ответ 26

В моем случае это был неверно названный XML файл, из-за которого мой R файл не перестраивался. Это не отображалось в проводнике пакетов, но это было показано в LogCat. Следите за любыми предупреждениями о ваших файлах res. Независимо от того, сколько раз вы очищаете свой проект, файл R не будет восстанавливаться до тех пор, пока эти ошибки не позаботятся.