Волшебство позади файла R.java - PullRequest
18 голосов
/ 12 января 2010

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

Ничего не произошло, поэтому я создал пустой файл R.java и надеялся на лучшее. Теперь Eclipse, похоже, выяснил, что файл был подделан, и даже выдает предупреждение:

R.java was modified manually! Reverting to generated version!

И это все, что есть. Я пытался создать его вручную, но не получил результатов.

Итак, у меня два вопроса:

  1. что я должен сделать, чтобы Eclipse восстановил файл
  2. что здесь происходит? Как создается файл, где находится код, который генерирует файл?

Буду признателен за любую помощь. Как обычно, проблема возникла всего за несколько дней до истечения срока:)

Ответы [ 19 ]

1 голос
/ 12 января 2010

Как сказал Понкин - у вас, вероятно, есть одна единственная проблема, которая заставляет R не генерировать себя заново, из-за чего у вас теперь один миллион и одна проблема.

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

У меня была такая же проблема здесь

1 голос
/ 04 мая 2011

Я обнаружил, что проблема связана с нежелательным ресурсом. Как только я удалил ресурс, был создан R.java.

1 голос
/ 12 января 2010

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

Что вы пытались сделать с файлом R.java?

1 голос
/ 08 мая 2010

Полезно знать, что если XML-файл содержит?, То R.java не регенерируется и ошибка не отображается в XML-файле (иногда это появляется через некоторое время) Если у вас есть строка, похожая на:

< string name="questionmark"\>?< /string> <br>

попытаться изменить? что-то еще и посмотреть, что происходит с файлом R.java - у меня сработало

1 голос
/ 06 мая 2010

Убедитесь, что нет ошибок в вашем файле манифеста. Если вы удалите строку ресурса app_name в /res/values/strings.xml, она не будет знать, как правильно создать R.java. Я обнаружил, что это проблема при выполнении учебника HelloSpinner.

0 голосов
/ 02 ноября 2013

У меня была похожая проблема. Проект очистки не решил проблему, и в коде, в верхнем регистре или пробелах в именах файлов не было ошибок.

Решением было появление всплывающего окна, которое появилось, когда вы выбрали PROJECT -> CLEAN, а затем сняли флажок с опции «Начать сборку немедленно». Очистить проект. Закройте и снова откройте Eclipse, а затем соберите проект (PROJECT -> BUILD).

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

0 голосов
/ 09 ноября 2012

Как примечание, обычно эти * .out.xml файлы генерируются при попытке построить ваш проект, в то время как файл xml находится в редакторе

0 голосов
/ 10 июня 2012

У меня была такая же проблема с IntelliJ. Проблема заключалась в том, что в * 1001 дважды было определено имя app_name. По какой-то причине проверки IDEA не обнаружили это автоматически.

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

Я прочитал это на другом сайте, и это помогло мне:

"Если это не решит вашу проблему, попробуйте изменить AndroidManifest.xml (просто добавьте пробел и сохраните). Я слышал, что это заставит R.java перестроиться."

Так что просто добавьте пробел в файл манифеста, а затем пересоберите!

...