Хотя с опозданием с ответом, это сложно для Google (одинарные кавычки), и непонятно, что происходит. У меня еще нет репутации, чтобы комментировать или просить об объеме (или размещать 3 ссылки), поэтому этот ответ может быть немного утомительным.
Чтобы ответить быстро, в вашем проекте может быть несколько плагинов Gradle.
Синхронизировать Gradle Wrapper и плагины
Моя проблема, похоже, началась с поврежденного файла IML. Android Studio (между закрытием и повторным открытием проекта) начала жаловаться, что IML исчез (его не было) и модуль должен быть удален, что я отклонил. Он сохранился, я обновился до AS 0.8.7 (canary channel) и застрял на проблеме OP (Task '' не найден в корневом проекте). Это полностью заблокировало сборки, поэтому мне пришлось копаться в 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 выдавал мне ошибки «неверное местоположение»).
- «Обертка» - это просто копия Gradle для каждого проекта Android Studio. Это позволяет вам иметь Gradle 2 в вашей ОС и разные версии в ваших проектах. Документы разработчика Android объясняют это здесь .
- Затем настройте файлы build.gradle для плагина . Версия плагина Gradle должна быть совместима с версией дистрибутива / оболочки для всего проекта. Поскольку документация по инструментам (tools.android.com/tech-docs/new-build-system/user-guide#TOC-Requirements) немного устарела, вы можете установить слишком низкую версию плагина (например, 0.8.0) и 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 и т. Д.), Но моя сборка прошла успешно, когда я обновил библиотеку Google 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)
Чтобы проверить, Build | Make Project не должен выскакивать окно с вопросом, какое приложение вы хотите создать.
- Сделайте недействительными ваши кеши
- Файл | Недействительные кеши / перезапуск (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
- Повторите всю эту последовательность (выход ... синхронизация) несколько раз, прежде чем сдаваться.
- Очистить проект
Если вы видите это ...
В моих последних сборках я продолжал видеть ужасные сбои (страницы исключений), но через несколько секунд сообщения очищались, сборка завершалась успешно, и приложение развертывалось. Поскольку я никогда не мог объяснить это, а приложение работало, я никогда не замечал, что в моем проекте есть два плагина Gradle. Так что я думаю, что плагины Gradle боролись друг с другом; один разбился, другой потерял свое состояние и сообщил об ошибке.
Если у вас есть время, часовой видеоролик «Нежное введение в Gradle» (www.youtube.com/watch?v=OFUEb7pLLXw) действительно помог мне приблизиться к файлам сборки Gradle, задачам, решениям по сборке и т. Д.
Отказ от ответственности
Я изучаю весь этот стек на чужой ОС, после того, как проработал другую карьеру ... и все это одновременно и под давлением. За последние несколько месяцев я ударил все стены, которые, как мне кажется, есть у Android; Я бываю здесь довольно часто и это мой первый пост. Я подумал, что это сложное решение, поэтому искренне извиняюсь, если качество моего ответа отражает трудности, с которыми я столкнулся с этим.