Не удается найти R.layout.activity_main
Я пытался работать с несколькими макетами, используя некоторые онлайн-уроки. Дело в том, что моя программа строилась и компилировалась правильно, пока был только один файл XML. Когда я добавил несколько XML файлов, я получаю ошибки, говоря: "activity_main не может быть разрешен или не является полем" для строки setContentView(R.layout.activity_main);
Фактически, каждый элемент, который я использовал ранее в R.*
, теперь сообщает об ошибке. Я не знаю, что пошло не так. Кто-нибудь может предложить, что нужно сделать?
Изменить 1: Я пробовал очистить и перестроить проект, но это не помогло. Кроме того, я импортирую правильный файл R.java
, как в mypackage.R.java
В соответствии с комментарием @RubberDuck, я сразу же удалил файлы, после создания проекта создавался файл R.java. Однако, когда я создаю новые файлы XML и добавляю в него элементы, создайте проект, R.java будет удален.
Ответы
Ответ 1
Если ваш XML содержит ошибки, которые мог создать ваш сгенерированный файл, попробуйте удалить большую часть своего контента и убедиться, что имена и имена файлов и файлов не дублируются, и не используются капители и пробелы. Если это сработает, вы можете начать добавлять материал.
Ответ 2
У меня была та же проблема, исправленная путем замены R
на com.example.appname.R
очевидно, вместо этого поместил туда ссылку на ваш пакет. Или просто добавьте эту строку в ваш файл:
import com.your.package.R
Или, что еще лучше, попробуйте удалить эту строку из кода, если она существует:
import android.support.compat.R
Ответ 3
Проверьте, не случайно ли вы импортировали android.R.
Ответ 4
Глупый ошибкой, которую я совершил, чтобы вызвать эту ошибку, была неправильная строка package в моем файле AndroidManifest.xml
. Я оставил строку в учебнике, но использовал ее при настройке проекта.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="COM.YOU.YOURAPPNAME"
android:versionCode="1"
android:versionName="1.0" >
Ответ 5
Вы импортируете недействительный класс R,
импортировать yourpackage.R класс
например
com.example.R
что действительно происходит, что и импортировать android.R класс не yourpackages.R
Ответ 6
Ivwd просто удалил строку "import android.R;" и позвоните в Project- > Clean...
Этого было достаточно для моих Win-7/x64 и Eclipse Kepler и последнего (02.2014) Android SDK
Ответ 7
goto tools- > android- > Проект синхронизации с файлом gradle
затем нажмите S
Ответ 8
В моем случае я случайно импортировал свою библиотеку R. класс, а не модуль приложения R. После редактирования это решается.
Ответ 9
Вероятно, есть проблема с файлами макета, исправьте его, и появится автоматически созданный класс.
Ответ 10
У меня есть несколько предложений:
-
Убедитесь, что у вас нет других ошибок, кроме ошибок, связанных с R. Щелкните правой кнопкой мыши папку вашего проекта в Eclipse, Android Tools → Fix Project Properties.
2.Проверьте, чтобы убедиться, что вы импортировали правильный R. Иногда можно импортировать по умолчанию Android.R.
3. Проверьте наличие ошибок в XML файлах макета.
Ответ 11
Благодаря комментарию @RubberDuck и ответом @Emil я смог выяснить, в чем проблема. Идентификатор большинства элементов в моем XML файле был точно таким же. Итак, я переименовал каждого из них. Кроме того, в моем XML файле были заглавные буквы. Имя файла должно быть в [a-z0-9_], поэтому я также переименовал свои файлы и проблема была решена.
Ответ 12
Это решило мою проблему,
apt-get install ia32-libs
и перезапустите:)
Android adb не найден
Ответ 13
или вы можете написать
import.R.layout//наверху
Это будет работать наверняка
Ответ 14
Я использовал maven как инструмент сборки, после того, как я построил свой проект и многому раскапывал в интернет для решения. Моя проблема решена путем добавления к main_activity.xml
инструменты: контекст = "MainActivity"
Ответ 15
У меня есть это, когда к значениям /strings.xml добавлен несоответствующий символ (/-one slash), и, конечно же, переименование проблемного ресурса было полезным.
И еще одна важная вещь - проверьте дату и время на вашем устройстве.
Ответ 16
ТОЛЬКО УДАЛИТЬ import.android.R;
Затем R.layout. (XML LAYOUTNAME) превратится в BLUE
IT TOOK ME ЧАСЫ НАЙТИ ЭТУ ОДНУ ОШИБКУ
Ответ 17
У меня была аналогичная проблема.
Это произошло внезапно, после удаления некоторых снимков из res. вытяжка.
Я сделал две вещи.
- Сначала я проверил все мои изображения в папке с возможностью переноса, если у всех их есть предварительный просмотр. один из моих был поврежден.
- Во-вторых, я закрыл все открытые студии и эмулятора Android. После этого все работало нормально.
Ответ 18
В Android Studio перейдите в Tools
→ Android
→ Sync project with gradle files
или File
→ Sync project with gradle files
в последней версии Android Studio.
Ответ 19
Случилось один раз. Не знаю причины.
Build > Clean Project удалил ошибку для меня.
Ответ 20
Либо ваш gradle, либо build должны знать, где находятся ресурсы.
Ответ 21
в 2019 году я столкнулся с той же проблемой, и я искал в Интернете и обнаружил следующее, которым делюсь со всеми.
В Android Studio буква R обозначает ресурсы, и эта ошибка возникает из-за того, что процесс сборки не может синхронизировать ресурсы с вашим проектом. Другими словами, эта ошибка возникает, когда Android Studio не может правильно сгенерировать файл R.java.
Эта проблема возникает, когда вы перемещаете код в другую систему или при первом создании проекта Android. Поэтому, когда вы создаете новый вид деятельности или новый класс, вы увидите сообщение об ошибке типа "не удается разрешить символ r" с красным подчеркиванием.
Ниже вы можете найти возможные способы устранения проблемы с разрешением символа r в Android Studio.
Обновить Project Gradle до последней версии
Всегда используйте последнюю версию Gradle для правильной работы Android Studio.
Синхронизировать проект с файлом Gradle
Как только вы обновите плагин Gradle, вам нужно синхронизировать проект с файлом Gradle.
Откройте android studio и выберите Файлы> Синхронизировать проект с файлами Gradle.
Очистить и восстановить проект
Наиболее эффективное решение - самое простое: очистите и восстановите ваш проект. Выберите "Построить"> "Очистить проект" на панели инструментов Android Studio, подождите несколько секунд, а затем создайте свой проект, выбрав "Построить"> "Перестроить проект".
Недействительные кэши/перезапуск
Если вы столкнулись с этой ошибкой после перемещения некоторых файлов и каталогов, возможно, ошибка R.layout вызвана несоответствием между кэшем Android Studios и текущим макетом ваших проектов. Если вы подозреваете, что это может быть причиной, выберите Файл> Неправильно кешировать/перезапустить> Отменить и перезапустить на панели инструментов Android Studios.
Проблемы с именами ваших ресурсов также могут помешать правильному созданию файла R.java, поэтому убедитесь, что у вас нет нескольких ресурсов с одинаковыми именами и что ни одно из имен ваших файлов не содержит недопустимых символов. Android Studio поддерживает только строчные буквы a-z, 0-9, точки с запятой и подчеркивания, и один недопустимый символ может вызвать ошибку R.layout во всем проекте, даже если вы фактически не используете этот ресурс где-либо в своем проекте!
Моя проблема и ее решение:
В моем случае я применил все вышеперечисленное, но не смог решить проблему. Таким образом, я запустил новый проект и вставил свой код один за другим и проверил мой код при запуске приложения. Наконец, однажды, когда я впервые удалил код в colors.xml и скопировал и вставил приведенный ниже код в файл colors.xml, я получил ошибку.
<color name="bg_login">#26ae90</color>
<color name="bg_register">#2e3237</color>
<color name="bg_main">#428bca</color>
<color name="white">#ffffff</color>
<color name="input_login">#222222</color>
<color name="input_login_hint">#999999</color>
<color name="input_register">#888888</color>
<color name="input_register_bg">#3b4148</color>
<color name="input_register_hint">#5e6266</color>
<color name="btn_login">#26ae90</color>
<color name="btn_login_bg">#eceef1</color>
<color name="lbl_name">#333333</color>
<color name="btn_logut_bg">#ff6861</color>
когда я отменил свои изменения, ошибка снова исчезла. Таким образом, мой код в colors.xml теперь является кодом выше, а код уже в colors.xml, т.е.
<color name="colorPrimary">#008577</color>
<color name="colorPrimaryDark">#00574B</color>
<color name="colorAccent">#D81B60</color>
<color name="bg_login">#26ae90</color>
<color name="bg_register">#2e3237</color>
<color name="bg_main">#428bca</color>
<color name="white">#ffffff</color>
<color name="input_login">#222222</color>
<color name="input_login_hint">#999999</color>
<color name="input_register">#888888</color>
<color name="input_register_bg">#3b4148</color>
<color name="input_register_hint">#5e6266</color>
<color name="btn_login">#26ae90</color>
<color name="btn_login_bg">#eceef1</color>
<color name="lbl_name">#333333</color>
<color name="btn_logut_bg">#ff6861</color>
Надеюсь, это поможет кому-то вроде меня, новичку в программировании.
Ответ 22
После очистки проекта и синхронизации с Gradle (безрезультатно) я удалил все свои операторы импорта и вернул их обратно, используя alt + Enter.
Ответ 23
Вы импортируете недействительный класс R, проверяете импорт.
Ответ 24
Я удалил import android.R и добавил
import android.support.v7.appcompat. *;
Однако это должно было быть сделано после импорта
appcompat путем щелчка правой кнопкой мыши и импорта