2013-06-14 2 views
10

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

Я сделал несколько небольших изменений в activity_main.xml, и когда я вернулся к MainActivity.java, я получил ошибку в нескольких местах, которые он не может решить. Я мог бы что-то сделать, чтобы вызвать это. Но я не уверен, что с тех пор, как я отредактировал xml.

Кто-нибудь знает, что может быть решением этого? Я могу найти R.java в r/release/packege/com /, и это выглядит отлично.

+1

Вы пробовали очистить свой проект? – Anila

+4

Это может произойти из-за ошибок в файлах XML. Посмотрите на вещи, которые вы изменили, на всякий случай. Иногда, однако, это всего лишь случай делать «чистый». У меня были оба экземпляра. – LokiSinclair

+0

Спасибо. Я сделал оба. У меня была небольшая ошибка в моем xml, и я также перестроил проект. Теперь это работает. Странно то, что идеал все еще предупреждает, что что-то не так. –

ответ

30

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

+0

Также убедитесь, что никакие папки не были дублированы. Особенно в каталоге '/ res'. – Wenger

+1

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

+0

Это случилось со мной много. Обычно в моих комментариях XML есть некоторый неэкранированный символ. Я хочу, чтобы Android Studio указывала на проблему, а не требовала, чтобы вы расчесали все предыдущие изменения XML. – codingjeremy

1

Попробуйте очистить проект, выполнив следующие действия:

Если вы используете Windows, откройте CMD, cd в каталог проекта и запустить gradlew clean.

+0

Это, вероятно, хорошее предложение. Первоначальная проблема возникла в проекте предварительного градиента, так что это не было бы решением в тот момент. Казалось, что была некоторая ошибка с текущим рабочим пространством Eclipse, вероятно, из-за установки Aptana. Когда я переместил проект в другое рабочее пространство, проблема исчезла. –

0

Я просто имел эту проблему, и причина в том, что после редактирования макета Android Studio автоматически добавлен импорт в исходные файлы:

import android.R 

Конечно главный класс R имеет не все символы в макеты , что сделало все красным беспорядком. Удаление этой линии для меня.

EDIT: Кажется, что затмение было the same problem на раннем этапе.

3

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

+0

Это действительно хороший совет. Не проблема, которую я имел, хотя. –

1

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

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

А потом я просто расстался с тем, что я прокомментировал ... и все было ханк-дори. Странный! Возможно, были некоторые затяжные проблемы, которые необходимо было затронуть, чтобы вызвать перестройку файла макета. Вы бы подумали, что в наши дни такие вещи не будут происходить, но они это делают.

Еще одна вещь! Возможно, что-то может случиться и с Java. Очень сложно узнать состояние среды выполнения Java; просто проще начать снова. Итак, еще одна вещь, которую нужно попробовать: перезагрузить компьютер, перезапустить Android Studio, а затем отключить кеши и перезагрузить. Да, весь боров.

+2

В качестве дополнения я помню старые времена программирования, когда, если вы случайно нажмете клавишу управления во время набора текста, вы можете легко вставить скрытый контрольный символ в свой код. Хотя вы не могли видеть эти символы, возможно, компилятор! Многие программисты 80-х годов потратили много времени на поиски этих ошибок. Возможно, иногда что-то подобное появляется в Eclipse? Любые комментарии? –

1

Я иногда получаю это после обновления Android Studio. Не всегда сразу, но через некоторое время (возможно, после перезапуска программы).

Вот что сработало для меня: Tools - Android - Sync project with Gradle files.

По какой-то причине просто щелкнув ссылку «Синхронизировать сейчас», которая появляется после изменения файла build.gradle, для меня не было никаких изменений. Хотя сообщения говорят примерно то же самое.

1

У меня была такая же проблема, потому что в моих строках.xml я забыл избежать апострофа. Используйте "\" никогда не "" в файле xml!

3

Убедитесь, что в вашем AndroidManifest.xml правильное название упаковки. Это устранило проблему для меня, когда мой R.whatever был отмечен красным!

+0

Очень большой момент DUH для меня. Мне также пришлось перезапустить студию, так как есть путь к устаревшему файлу. – TheRealJAG

0

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

0

Эта проблема возникает, когда вы переименовать имя пакета. После переименования имени пакета вы должны изменить старая упаковка имя на новее один. Для меня это решило проблему, как только я это изменил. После этого вы можете получить ошибки в xml-файлах, которые вы должны изменить имя пакета там. Вот и все.

0

У меня была проблема с R, и через несколько часов выяснилось, что проблема была в моем региональном написании, используемом в одном из моих xml-файлов. Проблемным словом было поведение, которое написано американцами. Я австралиец, и нас учат английскому методу написания определенных слов, и поэтому я смотрел мимо него несколько раз, прежде чем пенни упала. Его маленькая вещь, но она может легко подкрасться и укусить вас в нижних областях и трудно обнаружить и может тратить много времени.

0

В моем случае я только что добавил несколько новых файлов изображений в папку с возможностью копирования и случайно поставил туда GIF с моими PNG. Я еще не включил их в проект. Я удалил GIF, а затем сделал чистую и перестроенную. Это исправило это для меня.

0

У меня была эта точная проблема при импорте программы примера Udacity. Панель сообщений в Android Studio заявила, что ошибка не загружала .PNG в подкаталог в глубине файлов проекта.

Выключает PNG со всеми именами путей подкаталога больше, чем ограничение длины имени, определяемое Windows 7 (260 символов). Я дал проекту более короткое имя - чтобы освободить место, а затем Android Studio с радостью собрал.

Смежные вопросы