Intereting Posts
Сбой приложения для Android (фрагмент и xml onclick) Как заставить просмотр перерисовываться непосредственно перед выполнением следующей строки кода Как настроить представление Android на основе размеров родителя Какая разница между finish () и finishActivity (int requestCode) в android Как бороться с удалением разрешения для широковещательного приемника в Android M? Пользовательские представления Android с Kotlin Android – Как определить, когда запускается приложение для 3D-вечеринки Как я могу удерживать одну кнопку нажатой после нажатия на нее? Как проверить текст edittext – это адрес электронной почты или нет? Поместите неопределенный прогресс в качестве нижнего колонтитула в сетке RecyclerView Установите две кнопки одинаковой ширины независимо от размера экрана? Неявное «Отправить» после нажатия «Готово» на клавиатуре в последнем EditText Android: getView () дважды вызывается в пользовательском адаптере Java.lang.Object не может быть разрешен в Eclipse Где Eclipse скрывает хранилище ключей?

«Невозможно разрешить символ R» в Android Studio

В каждом случае во всех моих классах, где я R.id.something на R.id.something , R находится в красном цвете и говорит, что «не может разрешить символ R». Также каждый раз, когда появляется R.layout.something, он подчеркивается красным цветом и говорит: «Невозможно разрешить метод setContentView (?)». Проект всегда прекрасно строится. Это раздражает видеть это все время. Я прочитал много других вопросов здесь о чем-то подобном, но чаще всего участвовал в импорте проектов из eclipse. Я использую то, что, по моему мнению, является самой последней версией андроид-студии, и проект был создан с помощью андроид-студии и работал без каких-либо проблем. Я хотел бы знать, что вызывает это, если кто-нибудь знает.

ОБНОВЛЕНИЕ : Решение: В то время андроид-студия была совершенно новой, и я также был совершенно новым разработчиком. Я никогда не должен был использовать андроид-студию, я никогда не понимал, насколько она была незаконченной. Спасибо всем за поддержку в попытке помочь, поскольку это было опубликовано. По иронии судьбы, фактический ответ на этот вопрос был удален и не может быть восстановлен . Я чувствую, что мой первоначальный ответ – это решение этой проблемы.

Мой оригинальный ответ, который был удален:

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

Solutions Collecting From Web of "«Невозможно разрешить символ R» в Android Studio"

У меня тоже был этот вопрос. Простая «град-чистая» и «градирная сборка» сделала трюк.


Нажмите « Build-> Clean Project», и вы выполните очистку градиента

В последних версиях Android Studio, по крайней мере для меня, следующие работы:

«Инструменты» -> «Android» -> «Sync Project with Gradle Files»

У меня есть аналогичная проблема, и вот что я сделал:

Чистый проект и Sync Project с Gradle,

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

Проверить версию buildTools в моем sdk Введите описание изображения здесь

Из строя gradle (модуля) измените minSdkVersion от 8 до 9

 defaultConfig { applicationId "PackageName" minSdkVersion 9 targetSdkVersion 22 versionCode 1 versionName "1.0" } 

Но все это не помогло.

Наконец, я нашел ответ (это сработало в моем случае)

Изменить с build.gradle (module: app)

 android { compileSdkVersion 21 buildToolsVersion '21.0.1' ...... .... } 

Или

Выберите Файл | Изменение структуры проекта Build Tools Version to 21.1.1

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

  1. Проверьте файлы xml.
  2. Чистый проект.

Это оно.

Например, у меня была запись в strings.xml :

 <string name="A">Some text</string> 

И в activity_main.xml я использовал эту строковую запись

 <TextView android:id="@+id/textViewA" android:text="@string/A"/> 

Пока я работал с проектом, я удалил это

  <string name="A">Some text</string> 

И поэтому activity_main.xml стал недействительным. В результате: невозможно разрешить Р.

Итак, проверьте свои *.xml файлы и очистите проект.

По-видимому, здесь много причин. Недавно я добавил активность для тестирования с помощью метода NewActivity. Это создало файл с именем res/menu/new.xml и gradle не понравилось это имя, потому что new – зарезервированное слово.

gradlew clean

или

"Tools" -> "Android" -> "Sync Project with Gradle Files"

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

Если вы видите эту ошибку после перемещения java-файлов или каталогов в другие местоположения, вы можете гарантировать, что Android Studio запуталась. И угадай что? Отмена этих действий не устраняет проблему.

Поэтому вы пытаетесь очистить, но это не работает.

И перезапуск тоже не работает.

Но попробуйте File -> Invalidate Caches / Restart … -> Invalidate и Restart.

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

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

Я думаю, что если вы поместите файлы своих действий в другую папку, кроме стандартной. Вам нужно импортировать файл com.example.yourproject.R (это ваш файл проекта R файла NOT Android.R) для ВСЕХ действий с использованием R. Например, в файле MainActivity вставьте эту строку:

Import com.example.yourproject.R;

Просто очистите проект и Sync Project с помощью Gradle File. Введите описание изображения здесь

И проблема будет решена.

У меня недавно была эта проблема, и чистая / сборка и т. Д. Не разрешала ее. Я догадался, что у меня проблема, но не был уверен, где искать ее (это было в манифесте, ресурсах xml-файлов и т. Д.?).

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

Из меню в верхней части выберите:

Анализ -> Проверьте код, просмотрите весь проект, используя профиль «По умолчанию».

Результаты проверок будут содержать элемент под названием «Android». Здесь вы получите список всего, что вызывает проблемы в ваших ресурсах и файл манифеста. Ошибки откроют сгенерированные файлы xml из вашей сборки, которые будут показывать любые ошибки красным цветом.

Моя точная проблема была вызвана тем, что я использовал файлы манифеста, основанные на вкусах, и я скопировал некоторые разрешения внутри <application> в аромате случайно.

осмотр

ОБНОВЛЕНИЕ. У меня возникла проблема после того, как Android Studio по-прежнему обнаружила ошибку после исправления, хотя теперь я мог строить и работать отлично, пока ошибка все еще была. (Я запускаю канареечную сборку, так что до сих пор это делаю)

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

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

Do: Build> Clean Project

ВАЖНО: Убедитесь, что у вас нет ошибок после очистки проекта в панели сообщений (Alt + 0). Если вы найдете красные круги с восклицательным знаком, вы должны удалить эти ошибки в своем коде.

В основном эти ошибки связаны с @ string / или @ array /. Очистить проект еще раз!

Вы недавно обновили свои инструменты SDK? Запустите менеджер Android SDK и убедитесь, что у вас есть новейшие инструменты SDK, которые теперь отделены от инструментов платформы. У меня была такая же проблема, когда я впервые обновил свой менеджер SDK, пакет инструментов SDK для сборки не отображался для установки / обновления, пока я не закрыл и не открыл диспетчер SDK.

Build> Clean Project

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

Имейте хороший, и удачи с вашими проектами.

Кажется, что эта нотация работает нормально.

 android:id="@+id/viewID" 

Дизайн панели Android Studio, похоже, не работает.

У меня было это с

  1. Записная буква в моих ресурсах.
  2. Импорт Android.R, добавляемый Android Studio (или Eclipse)
  3. Ошибка в XML-файле

Та же проблема. Начнется, когда я добавил несколько изображений в свою папку с возможностью переноса и попытался получить к ним доступ. Также добавленные изображения имели расширение с прописными буквами. Кажется, что он разбил сборку, так как даже если я переименовал их, сообщение было тем же, и R было недоступно. Что я сделал, в файле .iml я искал excludeFolder и удалял их (например, ниже):

  <excludeFolder url="file://$MODULE_DIR$/build/apk" /> <excludeFolder url="file://$MODULE_DIR$/build/assets" /> <excludeFolder url="file://$MODULE_DIR$/build/bundles" /> <excludeFolder url="file://$MODULE_DIR$/build/classes" /> <excludeFolder url="file://$MODULE_DIR$/build/dependency-cache" /> <excludeFolder url="file://$MODULE_DIR$/build/incremental" /> <excludeFolder url="file://$MODULE_DIR$/build/libs" /> <excludeFolder url="file://$MODULE_DIR$/build/manifests" /> <excludeFolder url="file://$MODULE_DIR$/build/res" /> <excludeFolder url="file://$MODULE_DIR$/build/symbols" /> <excludeFolder url="file://$MODULE_DIR$/build/tmp" /> 

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

Файл Brother, R.java содержит ссылку между xml и java-страницей. «R не может быть разрешено» возникают только в том случае, если есть проблемы с некоторыми вашими файлами ресурсов. Таким образом, лучший и эффективный способ – удалить последний сделанный xml или извлечь в res-файле. А затем снова начать оттуда в соответствии с нормами кодирования андроида. Это единственный способ. Эффективный и правильный путь.

Также используйте Git для правильного отслеживания кода. ..

Счастливое кодирование .. 🙂

Мне пришлось импортировать свой пакет R в студию Android. Например: import com.example.<package name>.R

Это очень старый вопрос, но это все еще случается очень много, и здесь нет полного ответа.

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

Импорт из Eclipse в Android Studio не всегда работает гладко, особенно в старых версиях Android Studio. Убедитесь, что вы используете правильное дерево каталогов. Это должно выглядеть так для умеренно зрелого приложения:

 AppName/ // AppName is your app's name, obviously .gradle/ // This is a compiler created directory. You should normally leave it alone .idea/ // Ditto build/ // This too gradle/ // And this app/ build/ libs/ src/ androidTest/ // Tests based on the Android instrumentation runner should go here main/ java/ fully/ // Typically com qualified/ // the domain name. Longer package // names may have deeper folder trees AppName/ // All your java files go here res/ drawable-*/ // One of these for each resolution you support layout/ // All of your general layouts menu/ // All of your menu layouts values/ // All of your resource xml files xml/ // PreferenceScreen layouts go here AndroidManifest.xml debug/ test/ // Pure jUnit tests should go here .gitignore app.iml build.gradle // This is the gradle file you should be making most changes to proguard-rules.pro .gitignore build.gradle // This gradle file should mostly be left alone gradle.properties gradlew local.properties AppName.iml settings.gradle 

Возможно, это не так выглядит в вашей среде IDE. Существует надпись над деревом файлов, которая отображает ваши файлы по-разному, и по умолчанию она работает в моей системе под названием Android, которая разбивает ваши файлы на разные типы. Легче исправить эту проблему из той, что называется Project, и даже проще непосредственно из файловой системы вашей ОС, потому что Android Studio сворачивает папки, которые содержат только одну папку на одной строке.

Особенно, если вы когда-либо меняете имя своего приложения, вам необходимо убедиться, что исходное дерево main / java / com / domain / AppName обновлено. Также убедитесь, что тег пакета в вашем AndroidManifest.xml верен.

Если в ваших файлах Gradle или на вашем AndroidManifest.xml есть ошибки, это предотвратит правильное создание ваших файлов ресурсов Android. Иногда файлы Gradle можно сломать, обновив Android Studio, особенно из версий до версии 1.0. Иногда это происходит потому, что он перестает поддерживать более старые версии плагина Gradle, поэтому вам нужно обновить номера версий. Иногда бывает трудно найти, что такое текущие версии. На сегодняшний день, 7/17/15, мои приложения компилируются с помощью com.android.tools.build:gradle:1.2.3 . Это находится в блоке зависимостей в самом удаленном файле градиента,

Если ваш AndroidManifest ссылается на несуществующий ресурс или ресурс, который может быть выровнен или строб, он сломается и вызовет эту ошибку. Иногда, если что-либо ссылается на несуществующий ресурс drawable или string, вы получите эту ошибку.

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

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

Если у вас есть два ресурса xml с тем же именем, в каталогах, которые не переопределяют друг друга, вы можете столкнуться с этой проблемой. Например, вы можете иметь одно и то же имя в drawable-mhdpi и drawable-xhdpi, потому что они переопределяют друг друга в зависимости от целевого устройства, но если у вас одно и то же имя в макете и в меню, это вызовет проблему. Переименуйте или удалите один из файлов.

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

В одном случае мне пришлось полностью переустановить Android Studio. Я не знаю, что случилось, но это сработало.

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

Эти проблемы могут вызвать файлы Xml с зарезервированными словами для имен. Переименуйте или удалите их.

Есть несколько способов, с помощью которых ваш файл Gradle может ссылаться на версию встроенных инструментов, которые вы не установили. Исправьте это, изменив Gradle или загрузив соответствующие инструменты сборки.

Наконец, после того, как вы исправили все, что не так, вам нужно очистить проект Gradle. Вы делаете это, перейдя в меню «Сборка» вверху и выбрав «Очистить проект».

У меня такая же проблема, и это происходит, когда я создаю новый проект. То, что я делаю, это проверить обновления SDK, а затем обновления студии Android, затем снова открыть проект, открыть файл andoridmanifest.xml, стереть пробел между «_>» в андроиде: ярлык и сохранить. Хорошо, что работает для меня 🙂 Я надеюсь, что это сработает для вас.

Для меня это была большая головная боль. В моем случае ошибка появилась после настройки «Службы Google Play» в Android Studio (установка + build.gradle config). Это, в свою очередь, требует minsdk> 7, но ошибка очень неясна в этом (на самом деле жалоба об этом появляется только как «информация»). В любом случае .. при изменении minsdk до 8 как в файле манифеста, так и в файле build.gradle и при восстановлении проекта ошибка исчезла.

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

Измените последнюю версию sdk, это было для меня работой

1. Нажмите файл, а затем выберите структуру проекта 2. затем выберите «приложение», затем нажмите «ОК», и он сработал для меня. Введите описание изображения здесь

По-видимому, в моем случае проблема была решена путем добавления «*» в конце

 import android.R.*; 

Есть много причин для этой ошибки.

  1. Иногда это происходит для замены файла изображения, сохраняющего одно и то же имя.
  2. Предположим, вы удалили элемент из вашего макета .xml скажите <Button/> но он все еще объявлен в любом Activity или Fragment .java.
  3. Многое другое.

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

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

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

Это, безусловно, будет работать, так как изменений не будет.

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

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

У меня была та же проблема, и в большинстве случаев она устраняется

  • Синхронизировать проект с файлами градиентов
  • Doing Build -> Чистый проект
  • Doing File -> Invalidate Caches

Но на этот раз ошибка сохранилась даже после выполнения всех этих вещей, и, наконец, я нашел виновника.

Проблема была в файле xml , где я дал обычное строковое значение для android:id вместо типа ресурса id .

ОШИБКИ

 android:id="username" 

КОРРЕКЦИЯ

 android:id="@id/username" 

Обманывание вещей, связанных с resources в xml-файлах, является основной причиной этой ошибки. Остерегайтесь того, что она не может быть показана как ошибка в файле макета xml.

ЗАМЕТКА

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

В OS X с Android Studio 0.2.13 я сделал «Перейти к декларации» в com. <Project> .R import в одном из моих действий. Когда я вернулся к файлу активности, все предупреждения исчезли.

Изменить: вам нужно построить текущий вариант сборки до того, как это сработает.

Ни один из приведенных выше ответов не помог мне. Наконец я понял, что проблема в том, что в Android Studio отсутствовала папка «build». Я нашел несколько строк в файле проектов «iml», исключая «build / *». После их удаления появился файл сборки, и ошибки исчезли.

Убедитесь, что в проекте установлен AndroidManifest.xml.

Случилось со мной, что я импортировал проект, у которого еще не было манифеста, поэтому Android Studio не признает его проектом Android. Затем я вытащил проект в GIT и загрузил манифест, но все еще не работал. Затем я перезапустил Android Studio и сказал что-то вроде «Framework detected android».

Поэтому убедитесь, что ваш проект настроен как проект Android.

В моем случае, после того, как я получил ту же ошибку (не могу разрешить символ R) с версией версии 0.8.9 для Android, я решил перейти в структуру «Файл-> Проект» и изменил местоположение JDK на Oracle JDK, который я установил вручную. Так что в моем случае в linux вместо / usr / lib / jvm / java-7-oracle, который был предустановленным. Я изменил его на /home/phvz/App/jdk1.8.0_20, сохранил настройки, и проблема с символом R была исправлена ​​немедленно

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

 <attr name="showText" format="boolean" /> 

В моем объявлении стилизовано. Этот же атрибут также использовался системой ui:

 <style name="Base.Widget.AppCompat.CompoundButton.Switch" parent="android:Widget.CompoundButton"> <item name="track">@drawable/abc_switch_track_mtrl_alpha</item> <item name="android:thumb">@drawable/abc_switch_thumb_material</item> <item name="switchTextAppearance">@style/TextAppearance.AppCompat.Widget.Switch</item> <item name="android:background">?attr/selectableItemBackgroundBorderless</item> <item name="showText">false</item>// this line </style> 

Я переименовал предыдущий showText, чтобы showTextFormat, а затем gradle sync, который восстановил файл R.java.