955

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

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

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

+0

Для тех, кто по-прежнему испытывает некоторую проблему с eclipse, не имея возможности обновить/создать R.java. Возможным решением является создание фиктивного xml и просто удаление этого xml. В моем случае это решение – denil

+0

Честно говоря, это звучит так глупо (и это так), но модифицирует AndroidManifest.xml, а затем отменяет это редактирование, а затем сохраняет файл для меня. Если после этого я очистил проект, он снова сломался. И все это время я думал, что Xcode был единственной IDE, которая имела такие загадочные ошибки. – iwasrobbed

+2

Вы попытались щелкнуть правой кнопкой мыши по проекту -> Android Tools -> Fix Project Settings? – Sergei

ответ

82

Что сказал Уилл был прав

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» решили проблему.

+3

Реимпорт проекта сделал трюк. –

+3

Как изменить разрешение? –

+0

@Jignesh - 'cd $ ANDROID_SDK_ROOT/build-tools/'. Затем 'chmod a + x' в таких файлах, как' aapt', 'helpl',' dexdump', 'dx' и т. Д.' ANDROID_SDK_ROOT' должен быть установлен в вашей среде, и он укажет на вашу установку SDK. Например, '/ opt/android-sdk'. Важно установить оба параметра ANDROID_SDK_ROOT и ANDROID_NDK_ROOT, потому что инструменты Android используют их внутри. См. [Рекомендуемый каталог NDK?] (Https://groups.google.com/d/msg/android-ndk/qZjhOaynHXc/2ux2ZZdxy2MJ) в списке пользователей NDK. – jww

11

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

36

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

+8

Это сработало для меня, но сначала мне пришлось «Project -> Clean ...». –

125

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

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

import android.R; 

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

+4

Спасибо @ Dimitar, что исправил мою проблему! Eclipse и функция автоматического импорта, похоже, получили меня, добавив эту линию импорта автоматически. – Steven

+6

У меня также были подобные проблемы, когда я назвал макет с использованием заглавных букв – Travis

+0

Спасибо @Dimitar .... Почему этот импорт вызывает эти ошибки? –

7

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

3

В случае, если кто-то заинтересован (я мог бы спасти вашу жизнь здесь), у меня была ошибка, 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> 
376

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

+19

+1 для этого. У меня был более старый файл styles.xml с parent = "android: WindowTitleBackground", и он нарушал мою сборку и предотвращал что-либо, сгенерированное в "gen". Ошибка не была сообщена, только в окне консоли прямо при первом открытии проекта. –

+9

точно, если вы скопировали макеты из другого проекта и получаете это, ищет недостающие чертежи - это исправит его мгновенно! – Gabor

+0

Я получил его, когда я нажал «Запустить» с файлом макета (activity_main.xml) open, и он сгенерировал пустой 'activity_main.out.xml', а затем обнаружил в нем ошибку. Мне пришлось удалить «... out.xml» и нажать «Выполнить» в проекте. Все исправлено! См. Http://stackoverflow.com/questions/11254618/no-xml-content-please-add-a-root-view-or-layout-to-your-document –

84

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

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

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

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

+21

Это похоже на вырезание и вставку без ссылки – Casebash

+1

Несколько копий/вставка файлов и рефакторинг имен приводят к одной и той же проблеме, несмотря на то, что все имена и содержимое файлов были в порядке. Очистка проекта, удаление R.java вручную и всех заголовков импорта, а затем перестройка этих заголовков импорта (все еще с CTRL + SHIFT + O) работала нормально. – hornetbzz

+0

Это сработало для меня. Я изменил имя пакета в манифесте. Мне пришлось использовать ctrl-shift-O в классах, которые ссылались на сгенерированные значения класса R, чтобы добавить правильный импорт. –

2

Я изменил android:versionName в файле AndroidManifest.xml от 1.0 до 1.1. Это восстановило мой файл R.java, и я счастливый турист. Надеюсь, это может помочь кому-то.

11

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

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

+0

+1 для этого была моя проблема. Вы должны называть свои изображения так: eicon.png not eIcon.png. Я нашел ошибку, посмотрев на Consol. Он возвращал ошибку в файле с недопустимым именем файла: ... – jasonflaherty

5

Еще одна причина R.java не может генерироваться автоматически, если у вас есть каталоги, как Реза/вытяжка-ИПЧР, Рез/вытяжка-MDPI или Реза/вытяжка-ldpi.

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

5

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

+0

+1 YES! Удостоверьтесь, что он соответствует правильным соглашениям об именах ... [a-z0-9_.] – jasonflaherty

189

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

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

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

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

+0

У меня была эта проблема с образцом ApiDemos. Некоторый недостающий ресурс в файле strings.xml. Ошибка XML отображается в консоли Eclipse. – lemotdit

+0

спасибо!это была моя проблема, у меня был макет, который был ошибкой, но сообщения об этом не было. – 2010-11-22 13:58:04

+28

Как вы можете проверить наличие ошибок? Я не получаю ничего в своей консоли при создании/запуске. – Vincent

13

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

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

+0

Правда. Иногда, если он говорит, что есть проблема в вашем XML, где нет (красная короткая строка или желтая восклицательная точка), удалите оскорбительную строку, сохраните файл XML, вставьте строку обратно и сохраните ее снова. Если вы не строите автоматически, после этого снова создайте, и это может сработать. Иногда Затмение бывает глупо. :) – hotshot309

+0

Несмотря на другие ответы, перечисленные выше, этот оказался для меня правильным. Первоначально я получил сообщение «не могу найти APK», когда я пошел, чтобы скомпилировать некоторый пример кода, затем сделал «Чистый», который сгенерировал тонну ошибок «R не удалось», а затем просто открыл файл .xml и вручную сохранил ошибки были очищены, и я мог скомпилировать. – sXe

+0

Так верно: после очистки проектов у R.java не было - редактирование и сохранение strings.xml решили проблему. – BurninLeo

2

Так что я столкнулся с этой проблемой несколько раз при переключении целей сборки. Обычно я делаю проект >> 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 
4

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

Если вы хотите 2.1, чтобы быть минимальным, Android 2.1 на самом деле API Level 7.

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

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

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

14

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

+0

также, я только заметил, что переполнение стека требует от нас избежать всех обратных косых черт. – 2010-07-01 02:52:22

4

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

+0

Ahh ... Пробовал отлаживать/запускать xml-файл eh ... yep был там ... – GHz

812

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

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

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

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

+0

Действительно раздражает, и это правильный ответ. Если у вас возникли проблемы с проектом библиотеки, вы можете обнаружить, что это происходит, если проект библиотеки будет скомпилирован, когда вы полностью назовете пространство R ссылкой на проект библиотеки. –

+0

Для чего стоит эта ссылка, похоже, была обновлена. Исходную ссылку можно найти в кеше Google - http://webcache.googleusercontent.com/search?q=cache:efQa13VcFc8J:source.android.com/source/using-eclipse.html+&cd=5&hl=ru&ct=clnk&gl = us –

+0

Если он по-прежнему не работает, попробуйте импортировать R напрямую путем импорта [PROJECT_NAME] .R; –

0

У меня была та же проблема. В моем случае это связано с именами XML-файлов макета. У меня были некоторые имена файлов с прописными буквами в них:

screenQS.xml - не работал!

screenqs.xml - работал!

1

Если вы находитесь на Mac, проверьте, был ли добавлен .DS_Store в каталог в /res (ls -al в командной строке терминала). Удалите его и обновите/перестройте.

28

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

+23

+1 Но иногда ему нужно 3 перезапуска eclipse и 7 проектов очищается между ними. Просто продолжайте пробовать ;-) #rant –

+3

Смешайте его с касанием (отредактируйте + сохранить) .xml-файлы (strings.xml ...). –

+0

Вам нужно подогнать конами вверх вниз вниз, чтобы начать. – capdragon

4

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

0

Другой способ, который может возникнуть, - начать новый проект с одного из образцов. Когда вы позже решите изменить имя пакета из com.example.android.foo в свой собственный домен, вам нужно будет изменить несколько значений в манифесте и в отдельных .java-файлах.

Если вы находитесь в Eclipse, найдите инструкцию пакета для файла .java и выберите QuickFix. Там может быть несколько вариантов, но тот, который вы хотите, - это тот, который указывает на «Переместить» foo.java », чтобы упаковать« com.youdomain.android.yourapp ». Сохраните файл, и он может автоподтвердить или сделать так, как предложили другие. и попробовать «Проект-> Clean»

2

Недавно я столкнулся с аналогичной ситуацией с R, которые не могли быть решены

  1. Project -..> Clean (обычно это работает, но на этот раз он не сделал)
  2. Я попытался удалить папку (которая автоматически создается) - нет.
  3. Dummy, изменяющий файл. серый!
  4. Я зарегистрировал файл AndroidManifest.xml, если присутствовал appName. Это было - проверено!
  5. снова Посмотрел на моем Рез/папку ...

И это, где это становится странно ... Это дает ошибку, в некоторых, но не во всех случаях ..

Я добавил форматированный флаг = "false":

<resources> 
    <string name="blablah" formatted="false"> 
    </string> 
</resources> 

Bingo!

+4

Добавлено там где? – LouieGeetoo

2

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

  • Убедитесь, что любой ресурс ссылается изображение на самом деле там
  • Все уже было сказано так много, что это просто эхо ... Удалить все Затмения впрыскивается R.* если потребуется.
  • Мне нравится перезапускать Eclipse, когда я делаю это.
  • Убедитесь, что все файлы XML правильно структурированы. Мол, просто делай свои вещи. Hahaha
  • Пройдите столько строк, сколько сможете. Получить привычку ударяться Ctrl + Shift + S Часто получать результаты компилятора быстро меняются.

Hahah. Уверен, приятно получить R Невозможно решить исправлено, хотя ...

19

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

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

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

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

import com.example.myapp.R; 
+0

Это помогло мне, я перенес свою деятельность в пакет под корнем, добавив корневой пакет в качестве импорта (import com.example.myapp.R;) решил проблему. – niallsco

10

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

Надеется, что это помогает кому-то.

+0

Стоит отметить, что если у вас установлена ​​64-разрядная установка Linux, вам понадобятся ia32-libs. Если у вас его нет, попытка выполнить команду adb приведет к появлению странного сообщения о том, что он не может найти файл или каталог. –

3

Изменить цель сборки с 1.5 или 1.6 до 2.2 (API версии 8) и проверить, есть ли у вас символ % в string.xml. Если да, замените на %%.

+0

xml файл не очень хорошо сформирован: имел апостроф, исправил его, очистил миллион ошибок для R не разрешен – yeahdixon

19

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

То есть:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="your.correct.package.name" 
    ... 

После изменения этого, R.java будет регенерируется.

+0

Моим первоначальным именем пакета был com.xxxxxdroid.router. Я создал новую версию моего приложения com.xxxxxdroid2.router. Как только я это сделал, мне пришлось обновить имя пакета в AndroidManifest.xml, но только намного позже, когда я начал копировать и вставлять старые классы. Спасибо за указатель! –

+0

это исправляло мою проблему, я работал в XML-файле, рад, что я вспомнил, какой из них у меня загрузок ... спасибо ... – GHz

+0

Вы только что спасли меня .. :-) – Rasmus

0

Мой файл R исчез и не будет генерировать - консоль сообщила об этом:

[2010-09-22 16:19:40 - MyProject] Рез \ вытяжке-ldpi \ downloadNow.png: Invalid имя файла : должен содержать только [a-z0-9_.]

Так получилось, что имена ресурсов не могут иметь заглавных букв - убедитесь, что все они маленькие буквы и содержат. и _ only

-3

Проверьте содержимое своего XML-файла. Если layout_width или layout_height содержат элемент match_parent, то измените его на fill_parent. Это решило проблему для меня.

0

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

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

Возможно, это может помочь вам или другим читателям.

1

Настоящий вопрос заключается в том, как предотвратить импорт android.R ; от возвращения:

Window -> Prefs -> Java -> Редактор -> Сохранить действия

Uncheck "Organize Imports."

Это будет сделано.

4

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

+0

Это было преступником в мое дело. Любая ошибка в файле manifest.xml может вызвать эту проблему, если R.java еще не построен. –

0

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

Щелкните правой кнопкой мыши по проекту -> properties -> Java Build path-> source.

Затем добавьте папки gen и src. По какой-то причине Android хотел, чтобы у меня была только общая папка.

0

Я пробовал все вышеперечисленное без преобладания. Оказалось, что PhoneGap вызывает конфликт с Android SDK. После удаления PhoneGap файл Resources снова начал регенерировать. Другой проект, требующий PhoneGap, поэтому я снова установил, и еще раз, проект Android (другой проект) остановил автоматическое создание R-файла - была автоматически проверена сборка, была очищена и перезапущена Eclipse - нет кубиков. Я удалил PhoneGap, и он снова работал. Это PhoneGap v 1.5 с плагином MDS 1.1 для Eclipse.

3

Моя проблема заключалась в том, что я упустил отметку = из строк в строках.xml например. <string name"dialog_grl... Мне это не показалось, даже когда графический макет моего .xml-файла не смог показать строки. После очистки проекта все файлы перепутались.

2

Для меня я удалил "import android.R;" и он исправил все мои проблемы. Какой кошмар!!!

0

Убедитесь, что вы ищете R.drawable.*, что файл существует в папках drawable*.

0

Проект очищается после перезапуска Eclipse. Они генерируются автоматически, в противном случае вы являетесь внутренним XML-компонентом (например, кнопкой) после Ctrl + Shift + O. Он автоматически генерировал R-файл, а затем была решена ошибка.

0

Не пытайтесь импортировать android.R. Попробуйте исправить все ошибки, которые появляются в файлах XML, включая файл манифеста. Когда все ошибки будут удалены, снова появится R.java.

-2

Я предполагаю, что вы просто скопировали и вставили коды, или нет. В любом случае, проверьте файл AndroidManifest.xml, пожалуйста, верните ли имя package.

0

В моем случае я пытался преобразовать свой проект в Maven. После этого (и тысячи случайных ошибок, которые говорили НИЧЕГО) я пытался отменить все операции. Я не заметил, что файл проекта был изменен, и он не был виден внутри Eclipse.

Реверсивный .project файл для версии до-maven помог мне исправить эту ошибку.

1

Мое решение (на Eclipse, Juno) был нажать на "Fix Project Properities" по:

  1. Нажмите правой кнопкой мыши на проекте
  2. Выберите меню Android Инструменты
  3. Нажмите на Properities Fix Project

пс. Сначала проверьте, не реализована ли библиотека R, и все ли файлы в res/папке в порядке.

1

Еще одна причина, по которой это может случиться: Сегодня вечером я встретил страшную ошибку и, в конце концов, обнаружил, что ошибочное перемещение мыши, по-видимому, переместило один из классов моих собственных пакетов в иерархию другого. Поистине, нет конца количеству способов, которыми вы можете ввернуться в среду Eclipse.

0

Для меня это было из-за неправильной версии компилятора java. Свойства проекта -> Компилятор Java, включите «Включить специальные настройки проекта» и выберите свой «уровень соответствия компилятора»

1

Из многочисленных ответов, которые были предложены здесь, мне помогло изменить порядок в разделе «Заказ и экспорт» «на пути сборки java.

1.click на вас проект -> Свойства проекта

2.Java Построить путь

3.Order и экспорт

Изменить порядок пути класса Сложение быть

1. (your-package-name)/src

2. Андроид (номер версии)

3.Android Зависимости

4. (ваш-пакет имя),/ген

1

просто чистый и перестроен проект иногда помогает

2

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

Это происходит из-за устаревшего файла R.java. Когда мы редактируем файл манифеста Android, R.java создается снова.

1

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

19

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

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

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

2

Чтобы решить эту проблему, перейдите по ссылке java Build path-> order and Export и выберите все флажки и выберите ok, а затем очистите и создайте проект и импортируйте файл R-файла вашего пакета (Ex com.demo.R). Оно работает.

+0

Не могли бы вы прояснить это? Я исправил орфографические ошибки, но я все еще не 100% это имеет смысл. – Dutts

5

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

Sudo APT-получить установку ia32- libs

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

0

Это сработало для меня.

У меня не было «import android.R» в новом проекте, созданный мастером затмения. файл макета xml по умолчанию был также строчным.

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

Я прокомментировал вызовы setContentView и getMenuInflator, и make удалось, после чего Eclipse сгенерировал R.java.

Как только R.java был сгенерирован, мне удалось раскомментировать setContentView и getMenuInflator.

1

Проверьте с помощью файлов классов «импорт» выше и убедитесь, что импорт «android.R» отсутствует, если он затем удаляет его, а затем нажмите ctrl + shft + o и выберите «packagename.R», Импорт не другой.

93

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

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

Решение найдено here

+0

Себя тоже. И когда я выбрал менеджера SDK, вот и вот, инструменты сборки обнаруживаются автоматически проверенными для установки, с учетом того, что он * не был установлен *! Что дает??? –

+0

У меня была такая же проблема. Я так рада, что вы поделились этим. Я искал ошибку из своего кода два дня. Я очень расстроен для Google, потому что это сообщение об ошибке было очень сложно решить, но оно было вызвано собственной ошибкой, поэтому все инструменты не сообщают должным образом, что их вызывает. Я сделал одно и то же изменение в моем проекте, поэтому я подумал, что это была моя ошибка снова. –

+5

Работал для меня, спасибо! Это просто усиливает мою мантру: «никогда не обновляйте ничего при разработке». –

0

я попытался наиболее метод выше, но не работает мой случай

наконец я узнал, что ADB потерял

для Mac OS, перейдите в андроида каталог SDk

type ./adb start-server

+0

Это, безусловно, не то, что вызывает эту ошибку – jprofitt

+0

я проводил часы на этом, поэтому я попытался установить Android Manager SDK. когда я пытаюсь установить пакет, я был предупрежден, что мой adb потерян. поэтому я снова подключаю adb. после этого проблема r.java сразу исчезает – chings228

+0

Возможно, это совпадение, после чего это сработало, но основная причина не была решена путем перезапуска 'adb'. Это то, что связано с тем, как строится проект. Скорее всего, вы перезапустили Eclipse, очистили проект или сделали что-то еще по пути, вызвавшему восстановление файла R.java. – jprofitt

0

Убедитесь, что проекты библиотеки, которые вы импортировали в приложение, открыты.

И почему-то, если вы ничего не добавили к этой деятельности, например onCreate(), он не поймет, что такое R.

1

Иногда это помогает, когда вы вручную создаете файл R.java, просто простую пустую R.java.

5

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

0

У меня сегодня такая же проблема. Я попытался выполнить все обновления sdk с помощью менеджера SDK. После завершения и перезапуска проблемы с IDE была решена.

0

Есть два способа, г мы об ошибке

1) Проблема с макета файла, т.е. XML-файл

2) Если вы обновляете ADT, то проблема R будет больше появляться. - вам нужно проверить свойства для проекта - goto-> Properties -> Java Build Path -> Order and Export и проверить все lib.

Это решит проблему.

0

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

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

0

Я пробовал большинство вариантов этой темы (и многих других), и ничто не работало для меня. Наконец, это работало так, что я решил поделиться им со всеми ...

У меня есть несколько версий Eclipse IDE на моей машине (потому что я также работаю над проектами, не связанными с Android). Случайно я создал свой проект Android, используя рабочую область, которая использовалась другой (не Android) версией Eclipse. Из-за этого я предполагаю, что что-то странное происходит, и мой R.java никогда не генерируется!

Чтобы это исправить, все, что я сделал создается новое рабочее пространство и волшебно R.java начал получать сгенерирован и все прошло гладко ...

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

2

Я решил это для себя с помощью Window-> Preferences-> Android и SDK. Место: путь к adt \ sdk, например.C: \ adt \ sdk

0

Это работает.

Шаг 1:

Скачать https://www.dropbox.com/s/7nwlrg05ke05tat/GalleryImageview.zip

Шаг 2:

нагрузки затмения и загрузить проект> Run и Test будет работать на лету

Шаг 3:

Обновите здесь, если что-то не так.

Наслаждайтесь. Счастливое кодирование.

2

Я думаю, проблема в файле layout.xml или в инструкции import.

Убедитесь, что вы не импортировали R.android. , вместо импорта R.YOUR PACKAGE NAME..

Будет работать нормально.

3

просто чистый и перестроен проект иногда помогают

Убедитесь, что нет ошибок в вашем разрешении/вытяжке папки в android.While имена изображений в этой папке не дают цифры и заглавные буквы.

16

Убедитесь, что вы установили Android сборки инструмента менеджер формы SDk проект

щелкните правой кнопкой мыши свойства-> Java BuildPath выберите библиотеку и добавить андроид-support.jar следование этих шаг.

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

enter image description here

1

В моем случае эта ошибка была, потому что я импортировал файл в папку/Рез, и изображение было неверное имя. Не могу поверить, что я трачу почти час с этой проблемой, пока не понял, что изображение имеет недопустимое имя:/

+0

Хех ... Я импортируемый .PNG, которые я изменил .png после этого сообщения: D –

9

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

enter image description here

0

Я последовал совету, чтобы установить платформу сборки инструментов. Затем Сообщение

<package>/gen already exists but is not a source folder. Convert to a source folder or rename it. 

появилось в консоли. Поэтому я последовал совету и установил «ген» в качестве исходной папки. Это устранило проблему.

2

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

Благодаря this post Я установил инструменты для сборки 18.1.1 вместо 19, и он показал мне дефектный файл. Кажется, что версия 19 не показывает фактическую ошибку.

Надеется, что это помогает кто-то :-)

0

Я бы сказало, «R не может быть решен» что-то слишком общее характер и может ввести в заблуждение в разы. У меня также была такая же проблема много раз назад, даже когда я впервые создал новый проект (что означало, что я еще не испортил код). Большую часть времени мне просто нужно обновить менеджер sdk (как говорили некоторые люди). Но в моем недавнем случае я узнал, что путь к моему файлу проекта слишком длинный (что-то вроде этого E:\R&D\ANDROID\ANDROID BASIC\Folder 1\ Folder 2\..... \Folder n\MyProject). Имена папок также содержат пробел. Я думал, что это может быть так, и действительно, это правда, когда я создал новый проект в другой папке с самым коротким путем, и ни один из имен папок, содержащих пробельный символ, не работал нормально.

0

Для меня работала установка «Android SDK Build-tools». Откройте Android SDK Manager и установите инструменты для создания Android SDK. Он также помог обновить платформу разработки Andriod в Eclipse: Help> проверить наличие обновлений

0

правой кнопкой мыши на проекте и нажмите Refresh Или ударил F5

0

Импорт класс R с именем пакета. Не импортируйте класс android R.

4

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

Так Пожалуйста, имейте в виду, всегда это маленькое примечание

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

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

1

У меня была эта проблема много раз, и я обнаружил, что несколько раз «R обыкновение решать» начислять, потому что:

  1. плохие имени ресурса есть такие, как: изображение с именем My imge.png
  2. или некоторые ошибка в ресурсах, таких как ошибка в файлах xml или ошибка определения ресурса в ваших формах, которые не будут существовать.

В этом случае вы даже не можете импортировать свой собственный пакет R в свой проект. поэтому перейдите в папку ресурсов и найдите 2 надбавки.

это будет работать

0

причины R.java не может получить автогенерируемую если у вас есть каталоги как

res/drawable-hdpi, 
res/drawable-mdpi, 
res/drawable-ldpi. 

image name should be in a proper way 

Проверить Название изображений и проверьте и макет/any.xml и строку .xml

1

То же самое происходит со мной, и я прошел день, чтобы исправить это. действительно, это глупая ошибка. Я просто стригу свой опыт, может быть, это было бы полезно для вас.Во-первых, посмотрите внимательно, когда вы набираете этот setContentView(R.layout.activity_to_do_list); услышать начальную точку R.l, то затмение должно открыть предложение для вас выглядеть следующим образом enter image description here

импортирования второй не layout-android.R. второй создается в вашем проекте. com.example.gridtest - это имя пакета проекта. затем сосредоточьте свой импортированный раздел в своем коде enter image description here

ok посмотреть это import com.example.gridtest.R; его important. Если вы уже импортируете этот android.R, удалите его. Спасибо, что это работает. (вам не нужно делать это всегда, но если вы столкнулись с этой проблемой, тогда сделайте это, надеюсь, что это поможет)

+0

спасибо, работает для меня =] –

1

Некоторые ответы предлагают перезагрузить компьютер. Я обнаружил, что перезагрузить сервер adb достаточно - это особенно верно, если вы только что обновили Android SDK.

Restart adb через Linux оболочки:

$ cd $ANDROID_SDK/platform-tools 
$ ./adb kill-server 
$ ./adb start-server 

Вам может понадобиться перезапустить Eclipse, так что он может подключиться к перезапущен adb сервера. Возможно, вам понадобится выполнить очистку/сборку, если Eclipse не будет автоматически компилировать проекты.

0

Это очень старая тема, у меня было новое открытие сегодня. Я создал действие, я поместил его в другой пакет (по ошибке). Во вновь создаваемом классе eclipse не смог разрешить R.

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

Если вы не храните свой Activity в пакете действий, вы получите эту ошибку.

-1

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

Альтернативой является использование встроенного инструмента переименовать пакет, это будет заботиться о большинстве проблем избежать R не найден вопрос.

Right Click on the project 
Click on Android Tools 
Click on Rename Application Project 
Enter the new package name 

Затем появится всплывающее окно с просьбой о внесении изменений, в том числе обходной путь R.

Источник: Rename package name in android

4

В моем случае, R.java не производило, потому что была проблема в AndroidManifest.xml файл, в котором я неправильно указано имя деятельности!

+0

Исправить. У моего манифеста была неправильная тема 'android: theme =" @ style/Theme.AppCompat.Light "'. Я удалил это свойство из тега приложения, перешел в меню Project-> Clean и R.java был восстановлен правильно. –

+0

xml-файл с ошибкой, такой как макет или манифест, не позволит eclipse автоматически генерировать R res –

0

Если вы работаете с eclipse: иногда eclipse подавляет сообщения об ошибках в файлах ressource. Решение: сохраните временный ресурс, который не имеет ошибок в папке макета. Создайте новый проект. Затем eclipse показывает правильную ошибку в файле ressource. Удалить временный ресурс.

0

Кроме того, если у вас есть дополнительные файлы, такие как «desktop.ini» в папках res, которые добавляются ОС, но совершенно ненужны, попробуйте удалить их. По-видимому, это была одна из вещей, блокирующих поколение Р.Ява в импортированном моем проекте.

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

или

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

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

1

Убедитесь, что все ваши файлы ресурсов не имеют расширения верхнего регистра. Я узнал, что сохранил некоторые изображения с расширением верхнего регистра .PNG. Я изменил его на .png, и все стало нормальным.

1

Он работал для меня правой кнопкой мыши> Android-инструменты> Исправить свойства проекта и некоторое время после перезапуска Eclipse.

0

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

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

0

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

=> удалить другой импорт R-файл другого проекта или android.r => всегда помнить, если вы всегда сталкиваются с проблемой автоматического генерирования идентификатора или автоматическое удаление R-файл вы можете создать статический идентификатор, как строки файла и использовать его с @id вместо @ + ид

0

Боже Я Linux (ubuntu) вот как я его разрешил:

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

Так что аа быстро исправить (если вы знаете точный файл, который нужен исполняемое perission применить команду Ff специально для них.)

изменения в директорию вы положили ваш SDk, то:

sudo chmod +x -R . 

После этого goto project->clean->select your project->clean

Это сработало для меня !.

0

лучше и более перспективным решением

  1. близко Eclipse, и откройте каталог рабочего пространства.
  2. Ищите папку с именем «.metadata» и удалите эту папку.
  3. Открыть Затмение.

ошибка должна уйти :)

4

Установить все Android SDK Строить-инструменты и удалить импорт android.R в классе Activity. После щелчка проекта -> Clean

import android.R; 

enter image description here

0

При запуске x64 Linux вы можете упустить некоторые x32 построить LIBS. Ex для Debian убедитесь, что установлены libc6-i386 & пакеты zlib1g.

1

Для меня это было связано с использованием «частных» андроид вводимого коэффициента:

[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'). 

Интересно то, что эта ошибка не появляется в консоли, пока я не удалил ссылку на файл с помощью значков (тьфу!).

android:entries="@menu/drawer_view" 

Теперь решение было совершенно очевидно, копирование иконки в мой проект (Рез/вытяжке-XXXX /) и переход на местные ссылки.

@drawable/ic_menu_home 

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

5

Просто перейдите в список Android-меню Android. нажмите на Постройте Меню, внизу Под строительство нажмите на Проект перестройки.

enter image description here

7

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

-4

Нажмите Alt +введите и импорт

или

Ctrl + F9

и решена.

4

Сначала проверьте, есть ли какая-либо ошибка в любом макете xml или нет, если сначала разрешите его.

В противном случае удалите junit-зависимость из проекта и перестройте проект.

enter image description here

-1

Для решения R

  1. Сделайте все XML файл правильный

, а затем Clean Project в Построить меню

Это самый простой способ сделать это

Надеюсь, что это hepls.

1

Когда вы только что открыли свой проект, требуется a для студии android для загрузки вещей. Это случается со мной много. Я просто сижу и смотрю видео на YouTube в течение 5 минут, пока идет загрузка.

К тому времени не разрешен символ R не принят! :-)

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