Ответ 1
- Нажмите F4 в Структура проекта, проверьте SDK слева
- Нажмите вкладку Модули --- > Источник, выберите gen и src в качестве источников
PS: Ответ за год и меню изменились.
Я пытаюсь создать новую студию Android. Я экспортировал проект из eclipse, используя опцию build gradle. Затем я импортировал его в Android Studio. Файл R.java под gen имеет j в небольшом красном круге на нем. И в моих исходных файлах я получаю "не могу разрешить символ R" везде, где у меня есть ссылка на ресурс, например. "R.layout.account_list" и т.д.
Я раньше не использовал Intellij. Поблагодарили бы за любую помощь, поскольку, очевидно, не так много ответов о Android Studio. Спасибо!
PS: Ответ за год и меню изменились.
Файл → недействительные кеши
то
Перезапустить приложение
Ни один из ответов в Интернете пока не помог. Build > Make Project не работает для меня. Для меня это было так же просто, как выбрать этот другой вариант (на Android Studio 1.3.1):
Создать > Создать модуль 'имя модуля'
В моем случае у меня был файл Activity, импортированный из Eclipse, который имел строку:
import android.R;
Итак, все мои классы R решали SDK, как только я прокомментировал эту строку, все правильно составлено для моего пакета. Я только заметил эту проблему, когда я перемещал проект с моего Mac на мою машину Windows.
Эта проблема начинается с меня, когда я начал работать с build.gradle, чтобы включить необходимые данные (signatureConfigs) для создания подписанного .apk. После того, что оказалось успешной сборкой из командной строки, я обнаружил, что перешел в любой класс, используя R. *, что все ссылки R. * были неразрешены.
Ответы здесь мне не помогли. Я решил повторно импортировать проект, и он волшебным образом решил проблему. Файл/Импорт проекта... и выберите файл build.gradle в корневой папке приложений. Я хотел бы знать, почему реимпорт исправил это:)
Это, вероятно, связано с неудачной сборкой ресурсов
Как только проблема исправлена, просто Build > Rebuild Project
выполнит трюк
Перейти к Файл → Настройки → Компилятор теперь проверяет использование внешней сборки
затем перестроить проект
Я часто сталкивался с этой проблемой, особенно когда я связывался с библиотекой проектов как часть другого проекта. В последнем случае этой проблемы, в моем проекте Android lib использовался WebView. Оказывается, что Gradle создает файл R.class в подкаталоге с именем "web", путь которого не имеет никакого отношения к моему пути к исходному коду. Когда я импортировал это, моя проблема исчезла. Что я узнал? В будущем просто выполните поиск файла R.class и обратите внимание на путь, в котором он находится. Затем импортируйте пакет в свой код, используя этот путь. Это действительно отстой, что вы должны вручную выполнить это. Gradle должен автоматически импортировать созданные им пакеты.
Относительно следующего, от ответа песни Crossle
- Нажмите F4 в структуру проекта, проверьте SDK слева.
- Выберите модули --- > вкладка "Источник", проверьте gen и src как источники
Несмотря на сообщение "Мы предоставим пользовательский интерфейс для настройки параметров проекта позже... и т.д.", это сработало для меня.
Сначала проверьте, есть ли импорт android.R; в верхней части вашего класса это происходит, когда автоматический импорт включен в студии android.
после этого прокомментируйте все строки вашего кода, в которых вы используете переменную R (вы можете прокомментировать весь класс или...) затем запустить приложение, он регенерирует переменную R, и вы можете раскомментировать свой код.
Здесь то, что работало для меня в IntelliJ (Not Studio), в дополнение к ответам, представленным выше:
Вам нужно прикрепить фасет Android к существующему модулю Android. Для этого выберите модуль из списка модулей в "Настройки модуля", нажмите кнопку "+" сверху и выберите "Android". См. https://www.jetbrains.com/idea/webhelp/enabling-android-support.html.
Решение состоит в том, чтобы открыть окно структуры проекта. [командой пресса +; на mac ox s. Я не знаю, какой ключ для других платформ. вы должны найти его в меню "Файл".] и нажмите "Модули" в разделе "Настройки проекта", затем откроется ваш проект, наконец, отметьте созданные R.java как Источники.
Я использую Intellij idea 14.0 CE. Сгенерированный R.java находится в файле build/generated/source/r/debug/com/example/xxx
Действительно нелегко найти в первый раз.
Следуйте пяти шагам ниже:
<uses-permission android:name="android.permission.VIBRATE"></uses-permission>
)У меня была такая же проблема, но после всех шагов она работает для меня.
В IntelliJ 14
Проверьте, исключены ли сгенерированные источники. Обычно в структуре проекта → [module] → Paths → Выход компилятора: "Наследовать путь к компиляции"
Моя проблема заключалась в том, что у меня был файл 'default.jpg' в папке с возможностью переноса, и почему-то каждый ресурс не был разрешен. Исправлено после удаления этого файла!
Я также столкнулся с той же проблемой, и я прошел много ответов на stackoverflow. Затем я нашел одно решение, которое поможет мне решить эту проблему.
Проверьте имя пакета в файле AndroidManifest.xml. Я забыл изменить его, копируя в новый проект другой проект.
Вы должны проверить все свои файлы, если у него нет ошибок, и снова перестройте свой проект в:
Или в:
Отметьте use external build
и перестройте проект.
Я решаю эту проблему с настройкой JAVA_HOME, CLASSPATH.
Люди иногда пропускают JAVA_HOME и CLASSPATH при настройке Java_path.
Итак, попробуйте проверить переменную среды.
CLASSPATH → .;
JAVA_HOME → C:\Program Files\Java\jdk (версия) или где установлена Java
а затем проверьте файл xml, который может иметь ошибку (не называйте известные вещи, такие как кнопка, текст и т.д.)
Ни один из этих ответов не помог мне!
Моя проблема не была проблемой! Программа может полностью компилироваться и запускаться на устройстве, но среда IDE дала мне раздражающую синтаксическую ошибку. Он подчеркнул линии кодов, которые включали "R".
Способ решения этой проблемы:
Я просто добавил эти три класса в папку "myapp/ gen/com.example.app/":
BuildConfig
package com.example.app;
public final class BuildConfig {
public final static boolean DEBUG = true;
}
Манифест
package com.example.app;
public final class Manifest {
}
R
package com.example.app;
public final class R {
}
В моем случае (Linux, Android Studio 0.8.6) следующие действия:
Файл > Структура проектa > Модули > выберите главный модуль > выберите его грань > Сгенерированные источники
изменить значение "Каталог для сгенерированных файлов:"
от
MY_PATH/.idea/gen
к
MY_PATH/gen
Без компиляции этого кода apk выполняется и успешно выполняется
но редактор Android Studio выделяет mypackage.R.any все как "не может разрешить" во всех классах подпакетов
У меня была такая же проблема, и я исправил ее, удалив дополнительную библиотеку.
Чтобы попробовать это решение, перейдите в раздел "Файл" > "Структура проекта" (на Mac вы можете использовать команду "Apple;" )
Затем выберите приложение на левой вкладке. Перейдите на вкладку зависимостей и удалите дополнительную библиотеку.
проверить версию инструмента сборки в build.gradle(для приложения модуля). Затем перейдите в диспетчер android sdk, посмотрите, установлена ли версия, если она не установлена, или измените версию инструмента сборки на тот, который установлен, как показано ниже.
android {
buildToolsVersion "22.0.1"
..
..
..
}
Решение опубликовано https://stackoverflow.com/users/1373278/hoss выше работал у меня. Я воспроизвожу его здесь, потому что я еще не могу прокомментировать сообщение "Хосс":
Удалите import android.R;
из вашего файла активности, о котором идет речь.
Моя настройка:
Android Studio 1.2.2
Экспортируется проект с одного Mac на Git (все работает). Затем я импортировал проект на другой Mac из Git. То, когда он прекратил разрешать файлы ресурсов.
Я пробовал все в этой теме:
Ничего не работало, кроме удаления import android.R;
из моего java файла активности.
Чтобы избежать этой проблемы в будущем, добавьте папку .idea
в ваш файл .gitignore
. Есть хороший плагин от Git для gitignore в Android Studio. Установите этот плагин и щелкните правой кнопкой мыши в .idea > Add to .gitignore
просто очистить проект, а затем синхронизировать проект с файлом gradle.
В моем случае я обнаружил, что вместо "R.layout.account_list" был указан "android.R.layout.account_list". Просто удалите "android". может решить проблему. Надейтесь на эту помощь, потому что иногда вы можете упускать из виду, когда вы слишком фокусируетесь.
В моем случае:
Мне пришлось скопировать ссылку R файл; т.е. правой кнопкой мыши gen/<package> /R и Copy Reference. Затем вставьте это над R в свой код, где он не может быть разрешен.
Это решило это для меня (пробовав все здесь). Все еще не уверен, почему это работает, если быть честным.
У меня была такая же проблема. Имя пакета было неправильным в двух из следующих трех файлов. Я вручную обновил имя пакета, и все снова заработало.
GEN/ком/пример/приложение/BuildConfig.java
GEN/ком/пример/приложение/Manifest.java
GEN/ком/пример/приложение/R.java
Я не уверен, что их изменило, поскольку я никогда не изменял эти файлы раньше.
Если эта ошибка возникла при импорте проекта из Eclipse. Причина в том, что некоторые из файлов xml имели ошибки. Проверьте все файлы XML на наличие ошибок. В том числе androidmanifest.xml, а также значения, темы, стили, папки макетов и т.д. Предупреждения в xml в порядке, но ошибки будут генерировать эту ошибку.
Затем выполните Чистый проект и перестройте.
Для меня, с Android Studio 1.5.1, решение состояло в том, чтобы воссоздать весь проект с немного другим именем.
Я думаю, что это не обработало имя приложения "Kommentator_AS", потому что несколько мест вместо этого было названо "Kommentator".
Я попал в эту проблему с intellij 2016.1, потому что я установил сгенерированные источники в каталог, который не был в базовом каталоге проекта.
Например, в факторе Android в разделе "Сгенерированные источники" у меня было:
Directory for generated files: <project dir>/target/intellij-gen
Когда я изменил это на <project dir>/gen
, проблема исчезла.
Аналогично, когда я изменил его на <project dir>/gen2
, проблема также исчезла, но мне пришлось сделать глубокую очистку, чтобы заставить ее скомпилировать снова:
rm -rf ~/.IdeaIC2016.1/system/compile-server/<project>_<hash>
и удаления всех сгенерированных каталогов и target
dir.