Я только что загрузил и установил новый 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/
.
Что будет сказано правильно
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" решили проблему.
cd $ANDROID_SDK_ROOT/build-tools/<version>
. Затем chmod a+x
для таких файлов, как aapt
, aidl
, dexdump
, dx
и т. Д. ANDROID_SDK_ROOT
должен быть установлен в вашей среде, и он будет указывать на установку SDK. Например, /opt/android-sdk
. Важно установить как ANDROID_SDK_ROOT
и ANDROID_NDK_ROOT
потому что инструменты Android используют их внутренне. Смотрите рекомендуемый каталог NDK? в списке пользователей NDK.
После отслеживания этой проблемы я нашел эту заметку в документации на 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 (v. 22). Он прекратил создание папки gen
, которая включает R.java
. Решение заключалось также в установке новых Android SDK Build Tools из Android SDK Manager.
Решение найдено здесь
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".
R - автоматически сгенерированный класс, который содержит константы, используемые для идентификации ваших ресурсов. Если у вас нет файла R.java(это будет gen/eu.mauriziopz.gps/R.java в Eclipse с 1.5 SDK), я бы рекомендовал закрыть и снова открыть проект или перейти в Project > Build all (и выбрав "Build Automatically", в то время как там, как рекомендовано Josef). Если это не сработает, чем попытаться создать новый проект, если проблема воссоздана, чем сообщение здесь, и мы поговорим подробнее.
Закройте все файлы, очистите проект, перезапустите Eclipse.
Наряду с замечательными предложениями в предыдущих ответах убедитесь, что установлена целевая группа Android:
Изменить: через год я нашел другую причину. У меня было изображение .jpg в моей папке с тем же именем, что и изображение .png. Ссылка на это изображение в моем коде должна была смутить программу, и это дало ошибку "R не удалось решить".
Эта ошибка также может быть вызвана добавлением активности в пространство имен, которое отличается от корневого пространства имен для вашего пакета.
Например, если com.example.myapp
является корневым пространством имен для вашего пакета, вы можете добавить активность в пространство имен com.example.myapp.activities
.
Это приведет к ошибке "R не может быть разрешена".
Чтобы исправить импорт, R в пространстве имен по умолчанию в вашей деятельности должно быть:
import com.example.myapp.R;
Стоит проверить AndroidManifest.xml
. Значение package
имеет правильное значение.
То есть <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="your.correct.package.name"
...
После того, как вы измените это, R.java
будет повторно сгенерирован.
Удостоверьтесь, что вы установили форму разработчика sdk для Android.
Свойства правого клика проекта → 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.
Вам может потребоваться обновить/установить инструменты SDK. Перезагрузите Android SDK Manager еще раз и установите новый элемент: Android SDK Build-tools.one одним удалением, исправьте, какой из них работает для вас.
У меня тоже была эта проблема. Оказалось, что я случайно удалил строковый ресурс "app_name" из файла strings.xml
, который вызывал молчащую ошибку. Как только я добавил его, класс R был сгенерирован успешно, и все было резервным и работающим.
Просто перейдите в список Android Top menu. нажмите Создать меню, в разделе Строка нажмите Перестроить проект.
перезагрузите компьютер.
Ничто не помогло мне, кроме этого.
К сожалению, ни один из существующих вопросов не помог. Поскольку моя проблема кажется специфичной для платформы, это может работать, только если вы находитесь на Ubuntu 64 бит (в настоящее время я использую Ubuntu 12). Сначала я не видел окна "Проблемы", которые уже намекали на решение, что на 64-битной среде вам нужны 32-битные библиотеки, которые могут отсутствовать:
sudo apt-get install ia32-libs
Я установил пакет и восстановил свой проект, который исправил эту проблему для меня.
Попробуйте сделать свой новый файл с наименованием файла макета XML. Например, используйте my_file.xml
вместо myFile.xml
.
Еще одна причина: R.java
может не получить автогенерирование, если у вас есть такие каталоги, как res/drawable-hdpi, res/drawable-mdpi или res/вытяжке-ldpi.
1.6+, похоже, в порядке с этими каталогами, но 1.5 не хочет их. Когда я удалил эти каталоги, R.java
снова начал автогенерирование для меня.
Каждый раз, когда я прихожу к этой ошибке и всегда приземляюсь на SO. и в конце дня причина та же.
Итак, помните, что это маленькая записка
Я нашел большую часть времени - ошибка в XML-макете
Если ваш XML некорректен, тогда файл R не создается после построить.
В моем случае у меня была ошибка в AndroidManifest.xml
. Другие сказали, что ваши файлы XML должны быть свободны от ошибок, но я смотрел только в папке res/. Найдите и исправьте как можно больше ошибок, и проблема может решить проблему.
У меня были примеры Android 8 и я пытался использовать Android 7 SDK. Когда я закрыл проект и снова открыл папку приложения и решил использовать Android 8 SDK, он смог найти R файл. Надеюсь, это поможет.
Удалите main.out.xml
. Я новичок в этом и еще не знаю, для чего используется этот файл, но удаление его очистило проблему.
Часто это происходит из-за номера версии MinSDK, который вы предоставили при создании проекта. Пример:
Если вы хотите, чтобы 2,1 был минимальным, Android 2.1 на самом деле является API-интерфейсом 7.
Вы можете видеть, о чем я говорю, когда вы просматриваете SDK, который вы загрузили и установили. Перейдите к месту, где вы установили SDK (например, C:\android-sdk-windows
) и откройте папку с именем "платформы". Вы увидите что-то вроде "android-7", указанное как папка, и если вы откроете файл source.properties
, который при открытии текстовым редактором покажет вам соответствующую версию платформы.
Когда вы создаете проект, и вы должны выбрать API "Build Target", последний столбец в этом списке с именем "Уровень API" отображает номер, который вы ищете при заполнении настройки MinSDK.
Это, вероятно, одна из самых распространенных ошибок, которая приводит к тому, что файл R.java
не создается в Project > gen > packagename > R.java.
просто очистите и перестройте свой проект, он иногда помогает
Убедитесь, что в папке res/drawable в android нет ошибки. Если имена изображений в этой папке не содержат чисел и заглавных букв.
Моя проблема заключалась в том, что я оставил знак = из строк в strings.xml
например <string name"dialog_grl...
Мне это не показалось, даже когда графический макет моего .xml файла не смог показать строки. После очистки проекта все файлы перепутались.
Измените цель сборки с 1,5 или 1,6 до 2,2 (API версии 8) и проверьте, есть ли символ %
в string.xml
. Если да, замените на %%
.
Если кто-то заинтересован (я мог бы спасти вашу жизнь здесь), у меня была ошибка, R.xml
не может быть разрешена, немного отличается от проекта GLS. Хммм. После поиска в R.java
, я нашел автоматически сгенерированный класс, XML.java
, (я думаю) не был там.
Решение? Ему понадобилась новая папка в res
: res\xml
и файл с именем default_values.xml
там. Тогда все было в порядке.
На всякий случай, если у вас нет этого файла, это:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
</PreferenceScreen>
Сначала проверьте, есть ли какая-либо ошибка в любом макете xml или нет, если сначала разрешите его.
В противном случае удалите junit-зависимость из проекта и перестройте проект.
У меня была такая же проблема, но не удалось выяснить, какой файл xml вызвал ошибку.
Благодаря этому сообщению я установил инструменты построения 18.1.1 вместо 19, и он показал мне дефектный файл. Кажется, что версия 19 не показывает фактическую ошибку.
Надеюсь, что это поможет кому-то: -)
Я думаю, проблема в файле layout.xml или в инструкции import.
Убедитесь, что вы не импортировали R.android., вместо импорта R.YOUR PACKAGE NAME..
Он будет работать нормально.
Я решил это для себя с помощью Window- > Preferences- > Android и SDK. Место: путь к adt\sdk, например. C:\ADT\SDK
Чтобы устранить эту проблему, перейдите по ссылке java Build path- > order and Export и выберите все флажки и выберите ok, а затем очистите и создайте проект и импортируйте файл R файла вашего пакета (Ex com.demo.R). Он работает.
Если очистка проекта не работает и если нет проблем с xml файлами (если это новый проект). Затем перейдите в Androidmanifest.xml, отредактируйте его и добавьте пробелы между строками, сохраните его. Теперь очистите проект, ошибка исчезнет.
Это происходит из-за устаревшего файла R.java. Когда мы редактируем файл манифеста Android, R.java создается снова.
Для меня я удалил "import android.R;" и он исправил все мои проблемы. Какой кошмар!!!
Ого. Я решил проблему R, отслеживая все возможные ошибки во всех файлах XML и связанных с ними ресурсах. Я знаю, что это несколько слоев, но просто вы должны:
R.*
при необходимости.Хаха. Конечно, приятно получить R Не удается устранить, хотя...
Недавно я столкнулся с аналогичной ситуацией с R, которая не может быть решена.
gen/
(которая автоматически создается) - нет.AndroidManifest.xml
, если присутствовал appName
. Это было проверено!И вот где это становится странным... Это дает ошибку, в некоторых, но не во всех случаях.
Я добавил флаг formatted = "false":
<resources>
<string name="blablah" formatted="false">
</string>
</resources>
Бинго!
Итак, я столкнулся с этой проблемой несколько раз при переключении целей сборки. Обычно я делаю проект → Clean работал у меня. Однако в прошлый раз этого не произошло. Наконец, я попытался открыть файл default.properties, расположенный в корневой папке проекта. Я получил сообщение об ошибке, в котором указано, что он не синхронизирован с файловой системой. Я действительно удалил его и скопировал версию коллег, которая позволила eclipse восстановить мой R файл. Я вставлю, как он выглядит ниже. Он называется "default.properties".
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system use,
# "build.properties", and override values to adapt the script to your
# project structure.
# Indicates whether an apk should be generated for each density.
split.density=false
# Project target.
target=android-3
Я изменил android:versionName
в файле AndroidManifest.xml
с 1.0 на 1.1. Это восстановил мой файл R.java
, и я счастливый турист. Надеюсь, это может помочь кому-то.
Для меня это было связано с использованием 'private' чертежей android:
[2015-11-26 18:59:48 - MyAndroidApp]
/Users/myname/git/MyAndroidApp/res/menu/drawer_view.xml:24:
error: Error: Resource is not public. (at 'icon' with value
'@android:drawable/ic_menu_home').
Интересно, что эти ошибки не отображались в консоли, пока я не удалил ссылку на файл с помощью значков (ugh!).
android:entries="@menu/drawer_view"
Теперь решение было совершенно очевидно, копирование значков в мой проект (res/drawable-XXXX/) и переключение на локальные ссылки.
@drawable/ic_menu_home
Надеюсь, что это поможет.
Он работал у меня с помощью правой кнопки мыши > Инструменты Android > Исправить свойства проекта и некоторое время после перезапуска Eclipse.
Убедитесь, что все ваши файлы ресурсов не имеют расширения верхнего регистра. Я узнал, что сохранил некоторые изображения с расширением верхнего регистра .PNG
. Я изменил его на .PNG
, и все стало нормальным.
Я решил проблему с этим, поместив файлы ресурсов непосредственно в каталог, указанный Android. Я ошибочно полагал, что R.raw может содержать весь каталог файлов моих ресурсов. Все файлы должны иметь R.raw как их исходный родительский каталог.
или
В некоторых ответах предлагается перезагрузить компьютер. Я обнаружил, что перезапуск сервера adb
достаточно - это особенно верно, если вы только что обновили Android SDK.
Перезапустите adb
через оболочку linux:
$ cd $ANDROID_SDK/platform-tools
$ ./adb kill-server
$ ./adb start-server
Возможно, вам придется перезапустить Eclipse, чтобы он мог подключиться к перезапущенному серверу adb
. Вам может потребоваться выполнить очистку/сборку, если Eclipse не скомпилирует проекты автоматически.
То же самое происходит со мной, и я прошел день, чтобы исправить это. действительно, это глупая ошибка. Я просто стригу свой опыт, может быть, это было бы полезно для вас. Сначала внимательно посмотрите, когда вы наберете этот setContentView(R.layout.activity_to_do_list);
услышите начальную точку R.l
, затем затмение должно открыть предложение для вас, как будто это
вы импортируете второй, а не layout-android.R
. второй создается в вашем проекте. com.example.gridtest
- это имя пакета проекта. затем сосредоточьте свой импортированный раздел в своем коде
ok посмотрите import com.example.gridtest.R;
его важный. Если вы уже импортируете этот android.R
, то удалите его. Спасибо, что это работает. (вам не обязательно делать это всегда, но если вы столкнулись с этой проблемой, сделайте это, надеюсь, что это поможет)
У меня была эта проблема много раз, и я обнаружил, что несколько раз "R wont solve" накапливается, потому что:
My imge.png
в этом случае вы даже не можете импортировать свой собственный пакет R в свой проект. поэтому перейдите в свою папку ресурсов и найдите 2 надбавки.
это будет работать
В моем случае эта ошибка возникла из-за того, что я импортировал изображение в папку /res, а изображение имело недопустимое имя. Не могу поверить, что я трачу почти час с этой проблемой, пока не понял, что изображение имеет недопустимое имя:/
Иногда это помогает, когда вы вручную создаете файл R.java, просто простую пустую R.java.
Обратитесь к файлам классов "import" выше и убедитесь, что импорт "android.R" отсутствует, если он затем удаляет его, а затем нажмите ctrl + shft + o и выберите импорт "packagename.R" а не другой.
Я столкнулся с той же проблемой, я искал и искал предложения, которые я нашел, но ни один из них не работал у меня. Я изменил свое рабочее пространство, и он сработал, но прежде чем менять рабочее пространство, попробуйте использовать другие обходные пути. Любой из них может работать на вас.
просто очистите и перестройте свой проект, он иногда помогает
Из многих ответов, которые были предложены здесь, мне помогло изменить порядок в "Заказ и Экспорт" на пути сборки java.
1. щелкните на проекте → свойства проекта
2. Путь сборки Java
3.Order и Export
Измените порядок пути класса сборки
1. (пакет-имя-вашего)/ЦСИ
2. Андроид (номер версии)
3. Зависимости андроида
4. (пакет-имя-вашего)/ген
Еще одна причина, по которой это может произойти: Сегодня вечером я встретил страшную ошибку и, в конце концов, обнаружил, что ошибочное перетаскивание мыши, по-видимому, переместило один из классов моих собственных пакетов в иерархию другого. Поистине нет конца количеству способов выкрутить себя в среде Eclipse.
Мое решение (на Eclipse Juno) состояло в том, чтобы щелкнуть "Fix Project Properities":
пс. Сначала проверьте, не реализована ли библиотека R и все ли файлы в res/папке в порядке.
Реальный вопрос заключается в том, как предотвратить возврат import android.R;:
Окно → Prefs → Java → Редактор → Сохранить действия
Снимите флажок "Организовать импорт".
Это будет сделано.
Если вы находитесь на Mac, проверьте, добавлен ли .DS_Store
в каталог в /res
(ls -al
в командной строке терминала). Удалите его и обновите/перестройте.
Когда вы только что открыли свой проект, для студии Android требуется некоторое время. Это случается со мной много. Я просто сижу и смотрю видео на YouTube в течение 5 минут, пока он загружается.
К тому времени символ can not R исчез!: -)
Если вы проверили и переустановили все упомянутое выше, убедитесь, что проект завершил строительство, я предлагаю вам терпеливо ждать... Если не очистить и не перестроить проект.
При запуске x64 Linux могут отсутствовать некоторые библиотеки сборки x32. Ex для Debian убедитесь, что установлены пакеты libc6-i386 и zlib1g.
лучшее и перспективное решение
Ошибка должна исчезнуть:)
О, боже, я Linux (ubuntu), вот как я его разрешил:
Первая вещь проблема - проблема с разрешением. Я не видел никакой ошибки, связанной с ремиссией, но это была проблема. У инструментов не было прав на выполнение.
Итак, просто быстро исправить (если вы знаете, что точный файл, который нуждается в исполняемом расследовании, применит команду ff специально для них.)
измените каталог, который вы поместите в свой sdk, затем:
sudo chmod +x -R .
После этого goto project->clean->select your project->clean
Это сработало для меня!
R - это автоматически созданный ресурс в проекте android, который иногда случается, точно не знает, почему, но вы попробовали построить автоматически вариант из проекта
= > удалить другой импорт файла R другого проекта или андроида .r = > всегда помните, если вы всегда сталкиваетесь с проблемой автоматического генерации идентификатора или автоматического удаления R файла, вы можете генерировать статический идентификатор, как строковый, и использовать его с @id вместо @+ id
Каждый раз, когда у меня была проблема с R, которая не была сгенерирована или даже не исчезла, это было связано с некоторой проблемой в файле макета XML, который помешал созданию приложения.
R - порожденный класс. Если вы используете Android Development Tools (ADT), он генерируется всякий раз, когда проект построен. Возможно, вы отключили "Build Automatically".
Кроме того, если у вас есть дополнительные файлы, такие как "desktop.ini" в папках res, которые добавляются ОС, но совершенно не нужны, попробуйте удалить их. Это, по-видимому, было одной из вещей, блокирующих поколение R.java в импортированном проекте.
Если вы работаете с eclipse: иногда eclipse подавляет сообщения об ошибках в файлах ressource. Решение. Сохраните временный ресурс, который не имеет ошибок в папке макета. Создайте новый проект. Затем eclipse показывает правильную ошибку в файле ressource. Удалите временный ресурс.
Это может быть проблема, вызванная вручную переименованием пакета в AndroidManifest.xml
Альтернативой является использование встроенного инструмента для переименования пакета, это позаботится о большей части проблем, избегая проблемы с R, не найденной.
Right Click on the project
Click on Android Tools
Click on Rename Application Project
Enter the new package name
Затем появится всплывающее окно с просьбой о внесении изменений, в том числе обходной путь R.
Источник: Переименовать имя пакета в android
Это очень старый поток, сегодня у меня появилось новое открытие. Я создал действие, я поместил его в другой пакет (по ошибке). Во вновь создаваемом классе eclipse не удалось разрешить R
.
Я пробовал все способы, упомянутые во многих местах, но я не заметил, что я поместил его в другой пакет. После нескольких минут борьбы я заметил, что я поместил его в неправильный пакет.
Если вы не сохраняете свой Activity
в пакете действий, вы получите эту ошибку.
причина R.java не может быть сгенерирована автоматически, если у вас есть такие каталоги, как
res/drawable-hdpi,
res/drawable-mdpi,
res/drawable-ldpi.
image name should be in a proper way
Проверьте имя изображения и проверьте и layout/any.xml и string.xml
Импортировать класс R с вашим именем пакета. Не импортируйте класс android R.
Щелкните правой кнопкой мыши на своем проекте и нажмите Refresh
Или нажмите F5
Для меня работала установка "Android SDK Build-tools". Откройте Android SDK Manager и установите инструменты для создания Android SDK. Это также помогло обновить платформу разработки Andriod в Eclipse: Справкa > Проверить наличие обновлений
Я бы сказал, что "R не может быть разрешено" является чем-то слишком общим и может иногда вводить в заблуждение. У меня также была такая же проблема много раз назад, даже когда я впервые создал новый проект (что означало, что я еще не испортил код). Большую часть времени мне просто нужно обновить менеджер sdk (как говорили некоторые люди). Но в моем недавнем случае я узнал, что путь к моему файлу проекта слишком длинный (что-то вроде этого E:\R&D\ANDROID\ANDROID BASIC\Folder 1\ Folder 2\..... \Folder n\MyProject
). Имена папок также содержат пробел. Я думал, что это может быть так, и действительно, это правда, когда я создал новый проект в другой папке с самым коротким путем, и ни один из имен папок, содержащих пробельный символ, работал нормально.
Я следил за советом по установке инструментов построения платформы. затем Сообщение
<package>/gen already exists but is not a source folder. Convert to a source folder or rename it.
появился в консоли. Поэтому я последовал совету и установил "ген" в качестве исходной папки. Это устранило проблему.
Это работает.
Шаг 1:
Загрузить https://www.dropbox.com/s/7nwlrg05ke05tat/GalleryImageview.zip
Шаг 2:
Загрузите eclipse и загрузите проект > Run and Test будут работать на лету
Шаг 3:
Обновите здесь, если что-то не так.
Enjoy. Счастливое кодирование.
Я пробовал большинство опций в этой теме (и многих других), и ничто не работало для меня. Наконец эта работа сработала, поэтому я решил поделиться ею со всеми...
У меня есть несколько версий Eclipse IDE на моей машине (потому что я также работаю над проектами, не связанными с Android). Случайно я создал свой проект Android, используя рабочую область, которая использовалась другой (не Android) версией Eclipse. Из-за этого я предполагаю, что что-то странное происходит, и мой R.java никогда не генерируется!
Чтобы исправить это, все, что я сделал, создало новое рабочее пространство и магически R.java начал генерировать, и все прошло гладко...
Итак, пока вы пытаетесь использовать все другие варианты, дайте этому выстрел тоже. И надеюсь, что это сработает для вас...
прежде всего посмотрите на свой файл gen, если он содержит ваше имя пакета и R.java или нет. если он был пуст, возможно, у вас нет разрешения на создание новых файлов, поэтому выйдите из затмения, а не щелкните правой кнопкой мыши, запустите его как администратор и очистите проект, и все будет правильно.
иначе вы должны иметь ошибку в файле XML, возможно, или проверить другие ответы.
Существует два способа: R - ошибка
1) Проблема с вашим файлом макета, то есть xml файл
2) Если вы обновите adt, тогда возникнет проблема R. - вам нужно проверить свойства для проекта - goto- > Properties → Java Build Path → Order and Export и проверить для всех lib.
Это решит проблему.
У меня сегодня такая же проблема. Я попытался выполнить все обновления sdk с помощью менеджера SDK. После завершения и перезапуска проблемы с IDE была решена.
Убедитесь, что проекты библиотеки, которые вы импортировали в приложение, открыты.
И по какой-то причине, если вы ничего не добавили к активности, например onCreate()
, она не поймет, что такое R
.
Я попробовал больше всего метода выше, но не работал с моим случаем
Наконец, я узнал, что потерянный adb
для mac os, перейдите в каталог android sdk
type./adb start-server
Это сработало для меня.
У меня не было "import android.R" в новом проекте, созданный мастером затмения. файл макета xml по умолчанию был также строчным.
Проблема заключалась в том, что eclipse не генерировал R.java. Никакой эффект очистки/перезапуска не имел никакого эффекта.
Я прокомментировал вызовы setContentView и getMenuInflator, и make удалось, после чего Eclipse сгенерировал R.java.
После создания R.java мне удалось раскомментировать setContentView и getMenuInflator.
Для меня это было из-за неправильной версии компилятора java. Свойства проекта → Компилятор Java, включите "Включить конкретные настройки проекта" и выберите свой "уровень соответствия компилятора"
В моем случае я пытался преобразовать свой проект в Maven. После этого (и тысячи случайных ошибок, которые говорили НИЧЕГО) я пытался отменить все операции. Я не заметил, что файл проекта был изменен, и он не был виден внутри Eclipse.
Только возврат файла .project к версии до-maven помог мне исправить эту ошибку.
Не пытайтесь импортировать android.R
. Попробуйте исправить все ошибки, которые появляются в файлах XML, включая файл манифеста. Когда все ошибки будут удалены, снова появится R.java
.
Решение:
Очистить проект после перезапуска Eclipse. Они сгенерированы автоматически, иначе вы будете являться внутренним XML-компонентом (например, кнопкой) после Ctrl + Shift + O. Он автогенерировал R файл, а затем была решена ошибка.
Убедитесь, что вы ищете R.drawable.*
, что файл существует в папках drawable*
.
Я пробовал все вышеперечисленное без преобладания. Оказалось, что PhoneGap вызывает конфликт с Android SDK. После удаления PhoneGap файл Resources снова начал регенерировать. Другой проект, требующий PhoneGap, поэтому я снова установил, и еще раз, проект Android (другой проект) остановил автоматическое создание R файла - была автоматически проверена сборка, была очищена и перезапущена Eclipse - нет кубиков. Я удалил PhoneGap, и он снова работал. Это был PhoneGap v 1.5 с плагином MDS 1.1 для Eclipse.
Из многих возможных проблем, которые могут вызвать это, это то, что исправило это для меня.
Щелкните правой кнопкой мыши по проекту → properties → Java Build path- > source.
Затем добавьте папки gen
и src
. По какой-то причине Android хотел, чтобы у меня была только общая папка.
Я столкнулся с такой же проблемой после размещения какой-либо графики в папке с возможностью переноса. Была некоторая ошибка, и когда я попытался очистить, файла R.java
не было.
Итак, я тщательно проверил и обнаружил, что есть файлы с именами заглавных имен, а некоторые файлы имеют одинаковое имя, но разные расширения файлов. Я переименовал эти файлы и имел уникальное имя в нижнем регистре для каждого файла. Помните, что Android заботится о имени файла, а не о расширении.
Возможно, это может помочь вам или другим читателям.
Мой файл R исчез и не будет создан - консоль сообщила об этом:
[2010-09-22 16:19:40 - myproject] res\drawable-ldpi\downloadNow.png: Недопустимое имя файла: должно содержать только [a-z0-9 _.]
Итак, оказалось, что имена ресурсов не могут иметь заглавных букв - убедитесь, что они все маленькие буквы и содержат. и _ только
Другой способ это может произойти, если вы начинаете новый проект с одного из образцов. Когда вы позже решите изменить имя пакета из com.example.android.foo в свой собственный домен, вам нужно будет изменить несколько значений в манифесте и в отдельных .java файлах.
Если вы находитесь в Eclipse, найдите оператор пакета для .java файла и выберите QuickFix. Там может быть несколько вариантов, но тот, который вы хотите, - это тот, который указывает на "Переместить" foo.java ", чтобы упаковать" com.youdomain.android.yourapp ". Сохраните файл, и он может автоподтвердить или сделать так, как предложили другие. и попробуйте" Project- > Clean".
У меня была та же проблема. В моем случае это связано с именами XML файлов макета. У меня были некоторые имена файлов с прописными буквами в них:
screenQS.xml - не работает!
screenqs.xml - работает!
Я предполагаю, что вы просто скопировали и вставили коды, или нет. В любом случае проверьте свой файл AndroidManifest.xml
, проверьте правильность имени package
.
Чтобы разрешить R
а затем Очистить проект в Строить меню
Это самый простой способ сделать это
Надеюсь, что это будет.
Проверьте содержимое вашего XML файла. Если layout_width
или layout_height
содержат элемент match_parent
, то измените его на fill_parent
. Он решил проблему для меня.
Нажмите Alt + enter и импортируйте
или
Ctrl + F9
и решается.