Это очень старый вопрос, но он все еще часто случается, и здесь нет исчерпывающего ответа.
У меня была эта проблема больше раз, чем я хочу признать. Это может быть вызвано множеством проблем, которые в основном связаны с тем, что структура вашего проекта не соответствует ожидаемой. Вот список всех проблем, которые у меня были:
Импорт из 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 Studio правильно создавать файлы ресурсов. Файлы Gradle могут быть повреждены при обновлении Android Studio, особенно в версиях до 1.0. Иногда это происходит потому, что он перестает поддерживать старые версии плагина Gradle, поэтому вам нужно обновить номера версий. Иногда бывает сложно найти текущие версии. На сегодняшний день, 17.07.15, мои приложения нормально компилируютсяcom.android.tools.build:gradle:1.2.3
. Это находится в блоке зависимостей во внешнем файле Gradle,
Если ваш AndroidManifest ссылается на несуществующий рисуемый или строковый ресурс или действие, он сломается и вызовет эту ошибку. Иногда, если что-либо ссылается на несуществующий нарисованный или строковый ресурс, вы получите эту ошибку.
Если у вас есть файл в ваших ресурсах, который поврежден, или неверный файл XML, вы получите эту ошибку.
По моему опыту, иногда Android Studio просто бездействует, и вам нужно перезагрузить его и / или ваш компьютер. Я не знаю почему, но иногда это работает.
Если у вас есть два ресурса xml с одинаковым именем, в каталогах, которые не перекрывают друг друга, вы можете столкнуться с этой проблемой. Например, у вас могут быть одинаковые имена в drawable-mhdpi и drawable-xhdpi, потому что они переопределяют друг друга в зависимости от целевого устройства, но если у вас одинаковое имя в макете и в меню, это вызовет проблему. Переименуйте или удалите один из файлов.
Если только некоторые ресурсы имеют эту проблему, эти ресурсы, скорее всего, находятся в неправильном каталоге.
В одном случае мне пришлось полностью переустановить Android Studio. Я не знаю, что случилось, но это сработало.
В одном случае я переместил весь свой проект в другой каталог и повторно импортировал его как новый проект. Я не знаю, что случилось, но это сработало.
Файлы XML с зарезервированными словами для имен могут вызвать эту проблему. Переименуйте или удалите их.
Есть несколько способов, которыми ваш файл Gradle может в конечном итоге ссылаться на версию инструментов сборки, которые вы не установили. Исправьте это, изменив Gradle или загрузив соответствующие инструменты сборки.
Наконец, после того, как вы исправили все, что не так, вам нужно очистить свой проект Gradle. Вы делаете это, перейдя в меню Build вверху и выбрав Clean Project.