Ответ 1
Несмотря на то, что поздно в ответе, это сложно для Google (одинарные кавычки), и неясно, что происходит. У меня еще нет репутации, чтобы комментировать или просить объем (или отправить 3 ссылки), поэтому этот ответ может быть немного утомительным.
Чтобы ответить быстро, у вас может быть несколько плагинов Gradle в вашем проекте.
Синхронизировать Gradle Wrapper и плагины
Моя проблема начиналась с поврежденного файла IML. Android Studio (между закрытием и повторным открытием проекта) начала жаловаться на то, что IML ушел (это было не так), и модуль должен быть удален, и я отказался. Он сохранялся, я обновился до AS 0.8.7 (канальный канал) и застрял в проблеме OP (задача "не найдена в корневом проекте" ). Это полностью заблокировало сборки, поэтому мне пришлось впасть в Gradle.
Мои шаги по восстановлению в OSX (пожалуйста, настройте для Windows):
- Обновите Android Studio до 0.8.7
- Настройки | Обновления | Переключите "Бета-канал" на "Канальный канал", затем выполните проверку сейчас.
- Возможно, вы сможете пропустить это.
-
Проверено обертка Gradle (в настоящее время 1.12.2; не пытайтесь использовать 2.0 в это время).
-
Предполагая, что вам не нужна конкретная версия, используйте последний поддерживаемый дистрибутив
$ vi ~/project/gradle-wrapper.properties ... distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip
-
Это можно установить в Android Studio в настройках | Gradle (но 0.8.7 давал мне "неправильные ошибки местоположения" ).
- "wrapper" - это всего лишь копия Gradle для каждого проекта Android Studio. Это позволяет вам иметь Gradle 2 в вашей ОС и разные версии ваших проектов. В документах разработчика Android объясняется, что здесь.
- Затем отредактируйте файлы build.gradle для плагина. Версия плагина Gradle должна быть совместима с версией распространения/оболочки для всего проекта. Поскольку документация по инструментам (tools.android.com/tech-docs/new-build-system/user-guide#TOC-Requirements) немного устарела, вы можете установить слишком низкую версию плагина (например, 0,8) и Android Studio выведет ошибку с допустимым диапазоном для оболочки.
-
Пример: в build.gradle у вас есть этот плагин:
dependencies {
classpath "com.android.tools.build:gradle:0.12.+"
}
Вы можете попробовать переключить его на точную версию, например:
dependencies {
classpath "com.android.tools.build:gradle:0.12.2"
}
и (после записи какой версии вы меняете в каждом случае), проверяя, что каждый файл build.gradle в вашем проекте вытаскивает ту же версию плагина. Сохранение "+" должно работать (для 0.12.0, 0.12.1, 0.12.2 и т.д.), Но моя сборка завершилась, когда я обновил библиотеку Googles Volley (первоначально gradle: 0,8. +) И мой основной проект (изначально 0.12. +) До фиксированной версии: gradle: 0.12.2.
Другие проверки
-
Убедитесь, что у вас нет двух модулей приложений Android в том же проекте
-
Это может взаимодействовать с окончательным решением (разные версии Gradle выше) и вызывать
UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define (various classes)
-
Чтобы проверить, постройте | Сделать проект не должен появляться в окне, спрашивая, какое приложение вы хотите сделать.
-
- Недействительные кеширование
- Файл | Invalidate Caches/Restart (stackoverflow.com/a/19223269/513413)
- Если шаг 2 не работает, удалите ~/.gradle/(www.wuttech.com/index.php/tag/groovy-lang-closure/)
- Выйти из Android Studio
- $rm -rf ~/.gradle/
- Запустите Android Studio, затем выполните синхронизацию:
- Инструменты | Android | Синхронизировать проект с помощью Gradle файлов
- Повторяйте эту последовательность (quit... sync) несколько раз, прежде чем сдаваться.
- Очистить проект
- Сборка | Чистый проект
Если вы видите это...
В моих последних сборках я продолжал видеть ужасные неудачи (страницы исключений), но через несколько секунд сообщения очищались, строились успешно и развертывалось приложение. Поскольку я никогда не мог объяснить это, и приложение работало, я никогда не замечал, что у меня было два плагина Gradle в моем проекте. Поэтому я думаю, что плагины Gradle сражались друг с другом; один разбился, другой потерял свое состояние и сообщил об ошибке.
Если у вас есть время, 1-часовое видео "A Gentle Introduction to Gradle" (www.youtube.com/watch?v=OFUEb7pLLXw) действительно помогло мне подойти к файлам сборки, задачам, построению решений Gradle, и т.д.
Отказ
Я изучаю весь этот стек в иностранной ОС, работая в другой карьере... все одновременно и под давлением. В последние несколько месяцев я столкнулся с каждой стеной, я думаю, что у Android есть; Я был здесь довольно часто, и это мой первый пост. Я думал, что это тяжелое решение, поэтому я искренне извиняюсь, если качество моего ответа отражает трудность, с которой я столкнулся.