R не может быть решена - ошибка Android - PullRequest
1042 голосов
/ 20 мая 2009

Я только что скачал и установил новый 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);
    }
}

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

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

на линии

setContentView(R.layout.main);

Почему?

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

Ответы [ 106 ]

7 голосов
/ 10 ноября 2009

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

6 голосов
/ 28 марта 2017

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

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

enter image description here

5 голосов
/ 29 марта 2016

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

enter image description here

5 голосов
/ 15 апреля 2010

Еще одна причина, по которой R.java может не сгенерироваться автоматически, это если у вас есть каталоги, такие как res / drawable-hdpi , res / drawable-mdpi или res / drawable -ldpi .

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

5 голосов
/ 21 апреля 2010

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

4 голосов
/ 21 ноября 2010

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

4 голосов
/ 28 июня 2010

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

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

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

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

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

4 голосов
/ 12 июля 2010

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

4 голосов
/ 23 февраля 2013

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

sudo apt-get install ia32-libs

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

4 голосов
/ 21 декабря 2011

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

...