Как сгенерировать R.java

Я скачал несколько исходных кодов из исходных кодов Google.

Я выполнил их в Eclipse, но файл R.java не создан, и поэтому я получил много ошибок, говорящих о том, что R не может быть разрешен. В макете тоже нет main.xml. Некоторые другие файлы XML там. Как я могу выполнить эти программы?


person shashi    schedule 06.01.2011    source источник
comment
На Stackoverflow есть много подобных вопросов. Пожалуйста, выполните поиск и прочитайте основную документацию. Нет Main.xml не требуется. stackoverflow.com/questions/4516428/r-java-auto -сгенерированный-файл stackoverflow.com/questions/2757107/   -  person Cheryl Simon    schedule 06.01.2011
comment
FWIW, ни на один из этих вопросов не был дан абсолютно правильный ответ. Eclipse может перейти в состояние, в котором он не создает файл R.java. На самом деле мой R.java был удален с помощью операции Project-›Clean, предложенной тамошними людьми.   -  person    schedule 24.02.2011
comment
Да, clean удалит R.java, но при следующей сборке он будет воссоздан. Если это не так, вы можете попробовать выйти из Eclipse, а затем вернуться; иногда Eclipse путается.   -  person Scott C Wilson    schedule 29.04.2011
comment
Какие исходники вы скачали? И скопируйте-вставьте точные сообщения об ошибках.   -  person Gilles 'SO- stop being evil'    schedule 20.09.2011
comment
ЭТО ДЕЙСТВИТЕЛЬНО волнует меня в данный момент. Почему нет прямого решения этой проблемы. Я не могу построить проект из-за ошибок в строке R, поэтому он не будет сгенерирован.   -  person seb    schedule 18.08.2012
comment
Если у вас есть номер в качестве 1-го символа в имени файла (например, ресурс изображения), R.java не сможет сгенерировать, пока вы не измените имя на то, что начинается с буквы.   -  person alexismorin    schedule 28.11.2012


Ответы (11)


Если у вас есть действующий проект Android, вы можете использовать aapt package для создания R.java из ресурсов. Вот пример использования (все должно быть в одной строке):

aapt package --non-constant-id -f -m -M <abs_path_to_AndroidManifest.xml> 
  -S <abs_path_to_res_dir> -I <abs_path_to_platforms_android.jar> 
  -J <abs_path_to_dir_that_should_contain_gen_R_java) 
  --generate-dependencies

Вышеприведенное можно сделать доступным для сценариев с помощью ANT, используя цель aapt или просто используя цель exec.

person justadev    schedule 12.08.2012
comment
Забавно - сгенерировал один раз вот так, с тех пор работает и в Eclipse. И да, я знаю, что должен использовать Android Studio, но я не хочу... - person Torsten Römer; 27.11.2017

Предположим, у вас есть Android SDK. Если у вас есть .. просто очистите проект. R.java будет сгенерирован автоматически.

person GSree    schedule 07.01.2011
comment
При очистке проекта файл R.java удаляется из проекта. - person Navigatron; 08.05.2011
comment
@Nuktus Теоретически да. Так и должно быть. На практике (затмение) вы можете увидеть, что R.Java все еще присутствует после очистки. Хуже всего то, что иногда оператор импорта в классах указывает на неверный R.Java (например, из проекта библиотеки) - person GSree; 09.05.2011
comment
Вероятно, это потому, что у вас включена автокомпиляция. Вы очищаете все, затем автокомпиляция регенерирует это. - person Edwin Buck; 13.04.2015

Привет, я только что столкнулся с той же проблемой. Файл R.java удаляется и создается заново каждый раз, когда вы очищаете проект. В моем случае в одном из файлов .xml были некоторые ошибки, и R.java не был сгенерирован. Если у вас не было Main.xml, это может быть причиной. в любом случае, если вы исправите проблемы с .xml, R.java должен быть сгенерирован.

person Filippo    schedule 14.09.2012

  • Открыть Android SDK Manager
  • Отметьте Tools, что есть 3 пакета Android SDK Tools, удалите и установите их снова.
  • Когда они закончатся, обновите свой проект в Package Explorer.

Вы увидите BuildConfig.java и R.java в /gen

Я думаю, вам нужно, чтобы я рекомендовал этот комментарий

Наслаждайтесь своим строительным приложением.

person Pond from Thailand    schedule 28.05.2013
comment
Если быть точным, aadt является частью инструментов сборки Android SDK. Старые пакеты SDK поставлялись в пакете платформы SDK для каждого API-уровня. - person Tobu; 19.05.2014

После нескольких часов разочарования, наконец, я решил удалить красные метки из моего файла, где он не смог разрешить R.java, поскольку он фактически не был доступен в моем коде. После удаления первой красной строки из моего файла активности проект автоматически создает и генерирует R.java.

Это что-то действительно чертовски для меня, так как это происходит без всякой причины и возвращается с тем же самым.

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

С уважением, Суммвед

person Summved Jain    schedule 27.03.2012

Если ваш build.xml включает цель "-resource-src" (что будет, если вы включите $SDK_DIR/tools/main_rules.xml или lib_rules.xml), вы можете пересобрать его с помощью ant.

person Scott C Wilson    schedule 28.04.2011

Для будущих читателей перезапустите adb, а затем очистите.

person MikeT    schedule 27.05.2013

Исправьте все ошибки в макетах Xml, если ошибки только в атрибуте id, измените имя на другое при сохранении, затем введите исходные значения, это решение работает для меня.

person Enrique    schedule 23.10.2013

Я столкнулся с этой проблемой после добавления файла jpg с числовым именем файла в мою папку с возможностью рисования. Я получал ошибку компиляции «ожидается в строке y» при попытке перестроить проект после его очистки. Вы можете проверить, нет ли у вас подобной проблемы. Хотя я столкнулся с этим при использовании Android Studio, я уверен, что это также повлияет на Eclipse.

person Tash Pemhiwa    schedule 09.02.2014

Очистив проект, удалите R.java и создайте его заново. Если у вас есть ошибка где-либо в вашем файле /res (ресурсы), R обычно не будет генерироваться. Это может быть ошибка в названии картинки или еще что... исправляйте свои ошибки заранее. удачи ;)

person ahmed_khan_89    schedule 07.04.2014

Я столкнулся с подобной проблемой, и я изменил папку рабочей области, и все ошибки исчезли. Это своего рода простое решение, но оно работает.

person Anıl    schedule 28.08.2014