R не может быть решена - ошибка Android

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

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

package eu.mauriziopz.gps;

import android.app.Activity;
import android.os.Bundle;

public class ggps extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

, но Eclipse дает мне ошибку

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

on line

setContentView(R.layout.main);

Почему?

PS: у меня есть файл XML с именем main.xml в разделе res/layout/.

1046
задан 9 revs, 6 users 58% 16 June 2016 в 08:41
поделиться

31 ответ

То, что сказал Уилл, было правильно

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

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

Таким образом, изменение разрешения и выбор «Построить автоматически» решили проблему.

83
ответ дан 2 revs, 2 users 84% 16 June 2016 в 08:41
поделиться

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

0
ответ дан Graham P Heath 16 June 2016 в 08:41
поделиться

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

[2010-09-22 16:19:40 - myproject] res \ drawable-ldpi \ downloadNow.png: Неверный файл name: должно содержать только [a-z0-9 _.]

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

0
ответ дан sami 16 June 2016 в 08:41
поделиться

Существует несколько причин, по которым R не может быть устранена .

  1. В большинстве случаев эта ошибка возникает из-за ошибки файла XML. Эта ошибка может быть устранена с помощью Clean и rebuild вашего проекта, также вы можете перезапустить вашу андроид студию.

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

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

Если вы уже проверили их, и все же столкнулись с той же проблемой, тогда продолжайте:


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

Шаг 1: Безопасное удаление папки build из каталога приложения.
Шаг 2: В Android Studio, File -> Invalidate Caches / Restart
Шаг 3: Build -> Clean Project Затем Build -> Rebuild Project.

, поэтому папка build будет восстановлена ​​и надеюсь, что ошибка исчезла.


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

1
ответ дан 2 revs 16 June 2016 в 08:41
поделиться

лучшее и более многообещающее решение

  1. закройте Eclipse и откройте каталог Workspace.
  2. найдите папку с именем «.metadata» и удалите эту папку.
  3. Открытое Затмение.

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

1
ответ дан 2 revs, 2 users 92% 16 June 2016 в 08:41
поделиться

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

1
ответ дан Mansour Fahad 16 June 2016 в 08:41
поделиться

Нажмите Alt + enter и импортируйте

или

Ctrl + F9 < / kbd>

и решено.

-4
ответ дан 2 revs, 2 users 80% 16 June 2016 в 08:41
поделиться

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

-2
ответ дан 2 revs, 2 users 67% 16 June 2016 в 08:41
поделиться

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

0
ответ дан Great Question 16 June 2016 в 08:41
поделиться

О Боже, я Linux ( Ubuntu ), вот как я решил это:

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

Так что просто быстрое исправление (Если вы знаете точный файл, для которого требуется разрешение на выполнение, примените к ним специально команду ff.)

перейдите в каталог, в который вы положили свой SDK, тогда:

sudo chmod +x -R .

После этого перейдите на project->clean->select your project->clean

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

0
ответ дан dsharew 16 June 2016 в 08:41
поделиться

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

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

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

0
ответ дан Wolfgang Fahl 16 June 2016 в 08:41
поделиться

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

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

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

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

0
ответ дан Gautam Tandon 16 June 2016 в 08:41
поделиться

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

1
ответ дан Mike Fahy 16 June 2016 в 08:41
поделиться

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

7
ответ дан 2 revs, 2 users 67% 16 June 2016 в 08:41
поделиться

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

5
ответ дан 2 revs, 2 users 50% 16 June 2016 в 08:41
поделиться

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

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

11
ответ дан 3 revs, 3 users 40% 16 June 2016 в 08:41
поделиться

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

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

13
ответ дан 3 revs 16 June 2016 в 08:41
поделиться

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

Я установил новый ADT (v. 22). Прекращено создание папки gen, в которую входит R.java. Решением было также установить новые инструменты сборки Android SDK из Android SDK Manager.

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

95
ответ дан 2 revs, 2 users 89% 16 June 2016 в 08:41
поделиться

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

щелкните правой кнопкой мыши свойства проекта -> Java BuildPath, выберите «Библиотека» и добавьте android-support.jar, выполнив следующие действия.

Перейдите в Проект-> Свойства-> Путь сборки Java, затем выберите Порядок и вкладку экспорта. Установите проверенную библиотеку android-support .jar и поместите ее в начало списка. И очистить и восстановить .. Это работает для большинства случаев

enter image description here

17
ответ дан Sunil Kumar 16 June 2016 в 08:41
поделиться

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

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

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

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

198
ответ дан 4 revs, 4 users 43% 16 June 2016 в 08:41
поделиться

Просто зайдите в список верхнего меню Android. нажмите Build Menu, в разделе Build нажмите Rebuild Project .

enter image description here

5
ответ дан Gundu Bandgar 16 June 2016 в 08:41
поделиться

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

1
ответ дан 2 revs, 2 users 67% 16 June 2016 в 08:41
поделиться

Проверьте файлы классов imports выше и убедитесь, что нет импорта android.R, если он его удалил, а затем нажмите Ctrl + Shift + o и выберите packagename.R импорт, а не другой.

3
ответ дан 2 revs, 2 users 50% 16 June 2016 в 08:41
поделиться

Для меня это было связано с использованием «приватных» отрисовок для 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').

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

android:entries="@menu/drawer_view"

Теперь решение было вполне очевидным, копируя иконки в мой проект (res / drawable-XXXX /) и переключаясь на локальные ссылки.

@drawable/ic_menu_home

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

2
ответ дан 2 revs 16 June 2016 в 08:41
поделиться

Так что я сталкивался с этой проблемой несколько раз при переключении целей сборки. Обычно делаю проект >> Чисто работало на меня. Однако в последний раз этого не произошло. Наконец я попытался открыть файл 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
2
ответ дан user350617 16 June 2016 в 08:41
поделиться

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

4
ответ дан user3024292 16 June 2016 в 08:41
поделиться

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

4
ответ дан dvrm 16 June 2016 в 08:41
поделиться

Установите все Android SDK Build-tools и удалите import android.R из вашего класса Activity. После нажмите Project -> Очистить

import android.R;

enter image description here

4
ответ дан ethemsulan 16 June 2016 в 08:41
поделиться

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

12
ответ дан 19 December 2019 в 20:19
поделиться

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

39
ответ дан 19 December 2019 в 20:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: