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

Магия за файлом R.java

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

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

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

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

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

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

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

4b9b3361

Ответ 1

Я нашел проблему - я создал изображение 9patch с областью патча, определенной только по оси Y (я пытался предотвратить изменение размера на другом).

Остается вопрос: почему нет предупреждения об ошибке? Или, если есть - где он похоронен?

Ответ 2

У меня возникла проблема с компиляцией моего приложения для Android, с кажущимися необъяснимыми ошибками о сбое создания R.java.

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

Решение заключалось в том, чтобы выбрать проект, щелкните Project- > Clean, а затем вручную удалите все файлы *.out.xml. Только тогда я могу нажать Run- > Run и иметь успешную сборку.

Еще одна вещь: я использую Eclipse. Я должен был убедиться, что проект был выбран в Package Explorer, а not - только некоторый случайный исходный файл. Легко не заметить!

Ответ 3

R.java автогенерируется при сборке. Это содержимое основано на файлах ресурсов (включая макеты и предпочтения).

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

Вы можете просто удалить его снова (вручную или выбрав Project- > Clean) и перестроить свою программу.

Ответ 4

У меня была эта проблема несколько раз, и в большинстве случаев это вызвано некоторой ошибкой в ​​файлах "res", проверьте, что все в порядке, во всех ваших файлах res, в основном XML, и после того, как вы можете создать.

Например, две общие причины этой проблемы:

  • Не правильно написано имя свойства в стиле в XML файле.

  • Не удалось закрыть строку в XML файла локали.

Ответ 5

Извините, но попробуйте проверить вывод в Eclipse. Возможно, у вас есть некоторые ошибки, которые мешают Eclipse завершить процесс сборки (проверьте ваш AndroidManifest.xml, правильно ли это?). Я имею в виду, что вы должны проверить все свои файлы ресурсов (string.xml, layouts,...) и интерфейсы (*.aidl), могут быть некоторые проблемы (непоследовательный синтаксис или что-то еще...), которые предотвращают создание eclipse R.java.

Ответ 6

У меня была одна и та же проблема, и я назвал файл ресурсов (.png-изображение) заглавными буквами. (ImageButton001.png вместо imagebutton001.png).

После изменения имени файла возвратилась моя R.java.

Rgards, Juan

Ответ 7

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

Ответ 8

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

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

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

Ответ 9

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

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

Ответ 10

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

Ответ 11

Что-то, что может быть полезно знать, заключается в том, что если XML файл содержит?, то R.java не восстанавливается, и ошибка не отображается в файле XML (иногда она появляется через некоторое время) У меня есть строка, похожая на:

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

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

Ответ 12

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

Ответ 13

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

Ответ 14

У меня была эта проблема, чтобы перестроить R.java Я вырезал код в xml файле, над которым я только что работал (или попробовал другие, если это не работает), удалив файл, а затем создав другой то же имя и вставка кода обратно в него. Надеюсь, это поможет.

Ответ 15

У меня была та же проблема. Я просто пошел к:

Project -> Properties -> Android 

и выбрал правильный эмулятор для моего проекта, у меня было 3 разных варианта в тот момент. Я понял, что в определенный момент я изменил эмулятор. Поэтому попробуйте изменить эмулятор, который может помочь!

Удачи.

Ответ 16

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

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

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

Ответ 17

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

Ответ 18

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

Ответ 19

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

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

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