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/ .

Solutions Collecting From Web of "R не может быть разрешено – ошибка Android"

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

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

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

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

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

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

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

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

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

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

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

 import android.R; 

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

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

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

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

R.java – это файл, который плагины Android Eclipse создают при создании приложения. R.java создается в каталоге «gen». Этот файл создается из информации в каталоге «res». Если вы запустите в меню Eclipse пункт «Project» -> «Clean …», он удалит и затем восстановит файл R.java .

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

У Eclipse могут быть проблемы с выполнением очистки, так как он смущен тем, где R.java файл R.java когда вы изменили имя пакета Android. Вы можете переименовать подкаталог под gen именем в соответствии с вашим новым именем пакета или изменить имя своего пакета на прежнее имя. Выполните очистку, а затем измените имя пакета на новое имя. Это лучше всего работает, если вы перестанете пытаться создавать Eclipse при изменении имени пакета. В меню «Проект» снимите флажок «Автоматически создавать», а также, когда диалоговое окно «Чистота …» спрашивает, должно ли оно «немедленно начать сборку», снимите флажок, чтобы он не пытался строить, пока вы меняете Имя пакета. После того, как вы изменили имя, вы можете снова включить «Build Automatically».

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

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

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

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

Поэтому изменение разрешения и выбор «Build Automatically» решили проблему.

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

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

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

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

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

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

 import com.example.myapp.R; 

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

  1. Щелкните правой кнопкой мыши на своем проекте
  2. Выберите Свойства
  3. Выберите Android в левом меню
  4. Отметьте поле рядом с соответствующим объектом сборки проекта.
  5. Нажмите Применить и ОК.

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

Это стоит проверить в AndroidManifest.xml . Пакет атрибутов имеет правильное значение.

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

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

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

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

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

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

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

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

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

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

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

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

Эта ошибка возникла при установке моего 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

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

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

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

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

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

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

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

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

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

Sudo apt-get install ia32-libs

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

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

Просто перейдите в список Android Top. Нажмите «Меню сборки» , в разделе «Строка» нажмите « Восстановить проект» .

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

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

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

Часто это происходит из-за номера версии MinSDK, который вы предоставили при создании проекта. Пример:

Если вы хотите, чтобы 2,1 был минимальным, Android 2.1 на самом деле является API уровня 7.

Вы можете видеть, о чем я говорю, когда вы просматриваете SDK, который вы загрузили и установили. Перейдите в место, где вы установили SDK (например, C:\android-sdk-windows ) и откройте папку с именем «platform». Вы увидите что-то вроде «android-7», указанное в виде папки, и если вы откроете файл с исходным source.properties который при открытии текстовым редактором покажет вам соответствующую версию платформы.

Когда вы создаете проект, и вы должны выбрать API «Build Target», последний столбец в этом списке с именем «Уровень API» отображает номер, который вы ищете при заполнении настройки MinSDK.

Вероятно, это одна из наиболее распространенных ошибок, которые приводят к R.java файл R.java не создается в Project> gen> packagename> R.java.

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