R не может быть разрешен - ошибка Android

Я только что загрузил и установил новый Android SDK. Я хотел создать простое приложение для тестирования диска.

Мастер создал этот код:

package eu.mauriziopz.gps;

import android.app.Activity;
import android.os.Bundle;

public class ggps extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

но Eclipse дает мне ошибку

R не может быть разрешено

в строке

setContentView(R.layout.main);

Почему?

PS: У меня есть XML файл с именем main.xml под res/layout/.

935
20 мая '09 в 0:02
источник поделиться
105 ответов

Что будет сказано правильно

R - автоматически созданный класс, который содержит константы, используемые для идентификации ваших ресурсов. Если у вас нет файла R.java(это будет gen/eu.mauriziopz.gps/R.java в > Eclipse с 1.5 SDK), я бы рекомендовал закрыть и снова открыть ваш проект или перейти > Project > Build all (и выберите "Build Automatically", а там, как рекомендовано > Josef). Если это не сработает, попробуйте создать новый проект, если проблема воссоздана, чем > пост здесь, и мы поговорим подробнее.

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

Таким образом, изменение разрешения и выбор "Build Automatically" решили проблему.

82
20 мая '09 в 9:54
источник

После отслеживания этой проблемы я нашел эту заметку в документации на Android:

http://source.android.com/source/using-eclipse.html

* Примечание. Eclipse иногда любит добавлять инструкцию import android.R на верхней части ваших файлов, которые используют ресурсы, особенно когда вы спрашиваете Eclipse сортировать или иным образом управлять импортом. Эта приведет к тому, что ваш make сломается. Посмотрите за этот ошибочный импорт и удалять их. *

Просматривая учебные пособия для Android, я часто использовал команду Ctrl + Shift + O для "Organize Imports" и генерировал любые отсутствующие операторы импорта. Иногда это создавало бы неправильный оператор import, который скрывал бы класс R.java, который автоматически генерируется при создании.

808
15 июля '10 в 23:52
источник

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

374
27 янв. '10 в 11:51
источник

Всякий раз, когда вы получаете

R не может быть разрешено

затем проверьте каталог /res, и в нем должен быть некоторый файл с некоторой ошибкой, который предотвращает создание приложения. Например, это может быть файл макета, или может быть из-за недостающего ресурса, но вы уже определили его в файле XML.

Если у вас есть дополнительные, даже неиспользуемые (!) или неопубликованные (!) изображения в папке res/drawables-mdpi, которые не соответствуют соглашениям об именах файлов (могут содержать только [a-z0-9_.]), класс R.java не может генерировать, вызывая цепочку событий, на которые ссылаются другие сообщения. Надеюсь, это поможет!

188
06 мая '10 в 10:01
источник

В моем проекте есть r.java.at в начале, R.layout.main работает хорошо. Но после добавления некоторого кода он не работает, а ошибка R.layout.main не может быть решена. в чем проблема?

Посмотрите на свой импорт. Скорее всего, строка:

import android.R;

будет там. Если это произойдет, удалите его, чтобы ваш проект разрешил R не с классом ресурсов Android по умолчанию, а с одним автогенератором из папки/res/.

125
25 июля '09 в 15:12
источник

И еще одна вещь, которая может вызвать эту проблему:

Я установил новый ADT (v. 22). Он прекратил создание папки gen, которая включает R.java. Решение заключалось также в установке новых Android SDK Build Tools из Android SDK Manager.

Решение найдено здесь

93
17 мая '13 в 15:28
источник

R.java - это файл, который создаются плагинами Android Eclipse создавая ваше приложение. R.java создается под именем "gen" каталог. Этот файл генерируется из информации в "res" каталог. Если вы запустили выделение "Проект" → "Очистить..." на Eclipse меню, он удалит и затем восстановит файл R.java.

Проблема "R не может быть решена" происходит, когда вы меняете свой имя пакета в файле AndroidManifest.xml. Он использует ваш Android имя пакета для создания подкаталога в каталоге "gen", где он сохраняет файл R.java.

У Eclipse могут быть проблемы с выполнением чистых, потому что это путает где файл R.java - это когда вы изменили пакет Android имя. Вы можете либо переименовать подкаталог под gen, чтобы он соответствовал вашему новое имя пакета или вы можете изменить название своего пакета обратно на старый имя. Очистите, а затем измените имя пакета на новое имя вы хотите. Это лучше всего работает, если вы прекратите попытки Eclipse пытаться построить в то время как вы меняете имя пакета. В меню "Проект" снимите флажок "Автоматически создавать", а также Диалоговое окно "Чистота..." спрашивает, должно ли оно "немедленно начать сборку", снимите флажок, чтобы он не пытался строить, пока вы меняете имя пакета. После того, как вы изменили имя, вы можете включить "Build Автоматически "снова включить.

Обратите внимание, что если ваше имя пакета AndroidManifest.xml не совпадает ваше имя пакета Java, Eclipse автоматически добавит "import < название вашего Android-пакетa > .R;" во всех ваших файлах .java которые имеют любые ссылки на R. Если вы измените свой AndroidManifest.xml имя пакета, иногда Eclipse не обновляет все эти добавленные импорт. Если это произойдет, используйте рефакторинг Eclipse (ALT + Shift + R), чтобы изменить оператор импорта в одном из ваших файлов Java на ваше новое имя пакета AndroidManifest.xml. Лучше всего это сделать в то время как вы отключили "Build Automatically".

84
04 марта '10 в 21:37
источник

R - автоматически сгенерированный класс, который содержит константы, используемые для идентификации ваших ресурсов. Если у вас нет файла R.java(это будет gen/eu.mauriziopz.gps/R.java в Eclipse с 1.5 SDK), я бы рекомендовал закрыть и снова открыть проект или перейти в Project > Build all (и выбрав "Build Automatically", в то время как там, как рекомендовано Josef). Если это не сработает, чем попытаться создать новый проект, если проблема воссоздана, чем сообщение здесь, и мы поговорим подробнее.

36
20 мая '09 в 4:46
источник

Закройте все файлы, очистите проект, перезапустите Eclipse.

28
12 нояб. '10 в 12:39
источник

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

Например, если com.example.myapp является корневым пространством имен для вашего пакета, вы можете добавить активность в пространство имен com.example.myapp.activities.

Это приведет к ошибке "R не может быть разрешена".

Чтобы исправить импорт, R в пространстве имен по умолчанию в вашей деятельности должно быть:

import com.example.myapp.R;
19
11 авг. '11 в 7:38
источник

Наряду с замечательными предложениями в предыдущих ответах убедитесь, что установлена ​​целевая группа Android:

  • Щелкните правой кнопкой мыши на своем проекте
  • Выберите "Свойства"
  • Выберите Android в меню слева.
  • Отметьте поле рядом с соответствующей целью сборки проекта.
  • Нажмите "Применить" и "ОК"

Изменить: через год я нашел другую причину. У меня было изображение .jpg в моей папке с тем же именем, что и изображение .png. Ссылка на это изображение в моем коде должна была смутить программу, и это дало ошибку "R не удалось решить".

19
15 февр. '13 в 12:32
источник

Стоит проверить AndroidManifest.xml. Значение package имеет правильное значение.

То есть <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="your.correct.package.name" ...

После того, как вы измените это, R.java будет повторно сгенерирован.

18
21 сент. '11 в 11:29
источник

Удостоверьтесь, что вы установили форму разработчика sdk для Android.

Свойства правого клика проекта → Java BuildPath выберите Library и добавьте android-support.jar, выполните следующие действия.

Перейдите в Project- > Properties- > Java Build Path, а затем выберите вкладку "Заказ и экспорт". Установите поддержку библиотеки .jar для поддержки android и верните ее в начало списка. И очистите и перестройте. Он работает для большинства случаев.

enter image description here

17
29 авг. '13 в 10:09
источник

У меня была эта проблема в миллионный раз и я понял, что ее вызывает: я создал XML файл с заглавными буквами в названии. Все ваши имена файлов XML в /res должны соответствовать [a-z0-9\\._].

14
01 июля '10 в 5:50
источник

Самое простое решение. Иногда вам просто нужно сохранить файл XML, над которым вы работали, чтобы запустить автогенератор.

Сохраните файл (например, main.xml), затем удалите файл R.java и посмотрите, разрешает ли регенерированная R.java проблему разрешения R.

13
01 июня '10 в 4:47
источник

Проверьте имена файлов XML. Убедитесь, что все они в нижнем регистре.

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

11
14 апр. '10 в 20:44
источник

R - это сгенерированный класс. Если вы используете Android Development Tools (ADT), он генерируется всякий раз, когда проект построен. Возможно, вы отключили "Build Automatically".

11
20 мая '09 в 0:07
источник

Эта ошибка возникла при установке моего x64 Linux Mint. Оказалось, что результатом был сбой в двоичном коде ADB, потому что пакет ia32-libs не был установлен. Просто запуск apt-get install ia32-libs и перезапуск Eclipse исправили ошибку.

Если у вашего x64-дистрибутива нет ia32-libs, вам нужно будет пойти Multiarch.

Отметьте # 4 и # 5 в этом сообщении: http://crunchbang.org/forums/viewtopic.php?pid=277883#p277883

Надеюсь, это поможет кому-то.

10
21 авг. '11 в 9:09
источник

Вам может потребоваться обновить инструменты SDK. Перезагрузите Android SDK Manager еще раз и установите новый элемент: Android SDK Build-tools.

enter image description here

9
06 нояб. '13 в 7:19
источник

Вам может потребоваться обновить/установить инструменты SDK. Перезагрузите Android SDK Manager еще раз и установите новый элемент: Android SDK Build-tools.one одним удалением, исправьте, какой из них работает для вас. введите описание изображения здесь

7
02 апр. '16 в 4:36
источник

У меня тоже была эта проблема. Оказалось, что я случайно удалил строковый ресурс "app_name" из файла strings.xml, который вызывал молчащую ошибку. Как только я добавил его, класс R был сгенерирован успешно, и все было резервным и работающим.

7
10 нояб. '09 в 5:50
источник

перезагрузите компьютер.
Ничто не помогло мне, кроме этого.

5
26 мая '13 в 10:00
источник

Попробуйте сделать свой новый файл с наименованием файла макета XML. Например, используйте my_file.xml вместо myFile.xml.

5
21 апр. '10 в 4:01
источник

Просто перейдите в список Android Top menu. нажмите Создать меню, в разделе Строка нажмите Перестроить проект.

введите описание изображения здесь

5
29 марта '16 в 9:28
источник

К сожалению, ни один из существующих вопросов не помог. Поскольку моя проблема кажется специфичной для платформы, это может работать, только если вы находитесь на Ubuntu 64 бит (в настоящее время я использую Ubuntu 12). Сначала я не видел окна "Проблемы", которые уже намекали на решение, что на 64-битной среде вам нужны 32-битные библиотеки, которые могут отсутствовать:

sudo apt-get install ia32-libs

Я установил пакет и восстановил свой проект, который исправил эту проблему для меня.

5
23 февр. '13 в 13:37
источник

Еще одна причина: R.java может не получить автогенерирование, если у вас есть такие каталоги, как res/drawable-hdpi, res/drawable-mdpi или res/вытяжке-ldpi.

1.6+, похоже, в порядке с этими каталогами, но 1.5 не хочет их. Когда я удалил эти каталоги, R.java снова начал автогенерирование для меня.

5
15 апр. '10 в 22:14
источник

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

4
21 нояб. '10 в 19:48
источник

Каждый раз, когда я прихожу к этой ошибке и всегда приземляюсь на SO. и в конце дня причина та же.

Итак, помните, что это маленькая записка

Я нашел большую часть времени - ошибка в XML-макете

Если ваш XML некорректен, тогда файл R не создается после построить.

4
20 февр. '14 в 14:53
источник

Удалите main.out.xml. Я новичок в этом и еще не знаю, для чего используется этот файл, но удаление его очистило проблему.

4
12 июля '10 в 0:57
источник

В моем случае у меня была ошибка в AndroidManifest.xml. Другие сказали, что ваши файлы XML должны быть свободны от ошибок, но я смотрел только в папке res/. Найдите и исправьте как можно больше ошибок, и проблема может решить проблему.

4
21 дек. '11 в 20:09
источник

Посмотрите другие вопросы по меткам или Задайте вопрос