Вопрос

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

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

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

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

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

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

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

Это было полезно?

Решение 4

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

Вопрос остается открытым:Почему нет предупреждения об ошибке?Или, если есть - где оно зарыто?

Другие советы

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

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

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

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

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

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

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

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

Например, двумя распространенными причинами этой проблемы могут быть:

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

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

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

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

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

Спасибо, Хуан

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

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

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

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

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

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

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

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

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

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

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

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

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

У меня была такая же проблема.Я только что зашел в:

Project -> Properties -> Android 

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

Удачи

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

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

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

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

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

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

Решение заключалось во всплывающем окне, которое появлялось, когда вы выбирали ПРОЕКТ -> ОЧИСТИТЬ, а затем снимали флажок "Немедленно начать сборку".Очистите проект.Закройте и снова откройте Eclipse, а затем создайте проект (PROJECT->BUILD).

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top