Сборка Android Studio завершается ошибкой: «Задача» не найдена в корневом проекте MyProject ».

89

Я получаю эту ошибку при попытке создать свой проект после смены ноутбука и обновления до Android Studio версии 0.8.2.

ОШИБКА: сбой при сборке за исключением.

  • Что пошло не так: задача "не найдена в корневом проекте" MyProject ".

  • Попробуйте: запустите задачи gradle, чтобы получить список доступных задач. Запустите с параметром --stacktrace, чтобы получить трассировку стека. Запустите с параметром --info или --debug, чтобы получить дополнительный вывод журнала.

СТРОИТЬ НЕ СБОЙ

Вот мои файлы Gradle:

Настройки верхнего уровня .gradle

include ':MyProject'

build.gradle в MyProject:

apply plugin: 'com.android.application'

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:0.12.+"
    }
}
repositories {
    mavenCentral()
}

android {
    compileSdkVersion 20
    buildToolsVersion "20"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 20
    }
}

dependencies {
    compile 'de.timroes.android:EnhancedListView:0.3.0@aar'
    compile 'com.nineoldandroids:library:2.4.0'
}

Верхний уровень build.gradle пуст

Том Ричардсон
источник
Какую именно команду вы выполняете?
Opal
@Opal, я просто пытаюсь очистить и восстановить
Том Ричардсон,
Ладно. Какую команду вы выполняете?
Opal
8
Попробуйте закрыть и снова открыть Android Studio. У меня это сработало.
Петтер
2
Ни один ответ не выбран среди этого множества ??? По крайней мере, тогда опубликуйте свой ответ, это тоже поможет другим.
kAmol 04

Ответы:

63

Хотя с опозданием с ответом, это сложно для Google (одинарные кавычки), и непонятно, что происходит. У меня еще нет репутации, чтобы комментировать или просить об объеме (или размещать 3 ссылки), поэтому этот ответ может быть немного утомительным.

Чтобы ответить быстро, в вашем проекте может быть несколько плагинов Gradle.

Синхронизировать Gradle Wrapper и плагины

Моя проблема, похоже, началась с поврежденного файла IML. Android Studio (между закрытием и повторным открытием проекта) начала жаловаться, что IML исчез (его не было) и модуль должен быть удален, что я отклонил. Он сохранился, я обновился до AS 0.8.7 (canary channel) и застрял на проблеме OP (Task '' не найден в корневом проекте). Это полностью заблокировало сборки, поэтому мне пришлось копаться в Gradle.

Мои шаги по ремонту в OSX (пожалуйста, настройте для Windows):

  1. Обновите Android Studio до 0.8.7
    • Предпочтения | Обновления | Переключите «Бета-канал» на «Канарский канал», затем выполните проверку.
    • Вы могли бы пропустить это.
  2. Проверил оболочку 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.

Прочие проверки

  1. Убедитесь, что у вас нет двух модулей приложений Android в одном проекте.

    • Это может взаимодействовать с окончательным решением (различные версии Gradle, см. Выше) и вызывать

      UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define (various classes)

    • Чтобы проверить, Build | Make Project не должен выскакивать окно с вопросом, какое приложение вы хотите создать.

  2. Сделайте недействительными ваши кеши
    • Файл | Недействительные кеши / перезапуск (stackoverflow.com/a/19223269/513413)
  3. Если шаг 2 не работает, удалите ~ / .gradle / (www.wuttech.com/index.php/tag/groovy-lang-closure/)
    • Закройте Android Studio
    • $ rm -rf ~ / .gradle /
    • Запустите Android Studio, затем синхронизируйте:
      • Инструменты | Android | Синхронизировать проект с файлами Gradle
    • Повторите всю эту последовательность (выход ... синхронизация) несколько раз, прежде чем сдаваться.
  4. Очистить проект
    • Сборка | Чистый проект

Если вы видите это ...

В моих последних сборках я продолжал видеть ужасные сбои (страницы исключений), но через несколько секунд сообщения очищались, сборка завершалась успешно, и приложение развертывалось. Поскольку я никогда не мог объяснить это, а приложение работало, я никогда не замечал, что в моем проекте есть два плагина Gradle. Так что я думаю, что плагины Gradle боролись друг с другом; один разбился, другой потерял свое состояние и сообщил об ошибке.

Если у вас есть время, часовой видеоролик «Нежное введение в Gradle» (www.youtube.com/watch?v=OFUEb7pLLXw) действительно помог мне приблизиться к файлам сборки Gradle, задачам, решениям по сборке и т. Д.

Отказ от ответственности

Я изучаю весь этот стек на чужой ОС, после того, как проработал другую карьеру ... и все это одновременно и под давлением. За последние несколько месяцев я ударил все стены, которые, как мне кажется, есть у Android; Я бываю здесь довольно часто и это мой первый пост. Я подумал, что это сложное решение, поэтому искренне извиняюсь, если качество моего ответа отражает трудности, с которыми я столкнулся с этим.

ǝɲǝɲbρɯͽ
источник
Отличный ответ, не за что извиняться, и спасибо за ссылку на YouTube
Sabuncu
Спасибо за это. Шаг 3 в «Других проверках» был тем, что помогло мне:$ rm -rf ~/.gradle/
String
24

Загрузите образ системы (целевого уровня Android вашего проекта) из диспетчера SDK для проекта, который вы импортировали.

Эта ошибка возникает, когда у вас нет целевого SDK вашего проекта Android, установленного в папке SDK.

например, для Целевым уровнем sdk вашего импортированного проекта может быть android-19, а в папке sdk-> system-images у вас может быть установлен android-21. поэтому вам нужно загрузить образ системы android-19 и другие файлы из диспетчера sdk, или вы можете скопировать и вставить его, если у вас есть образ системы.

Анкит Бансал
источник
1
Это исправило это для меня - я также заметил желтое предупреждение «Ошибка синхронизации проекта Gradle» в AS, когда я смотрел в окно «Сообщения», он содержал гиперссылку для установки отсутствующего целевого SDK с помощью нескольких щелчков мышью.
Мистер Бангл,
13

Удалять:

<facet type="android" name="Android">
    <configuration />
</facet>

в вашем iml файле. Это подходит для меня.

https://plus.google.com/+AlexRuiz/posts/49hP3V9GSGe

Тони
источник
Это не применимо к проекту Gradle, не так ли? Мой project.xml содержит<facet type="java-gradle" name="Java-Gradle">...
Trinimon
9

Это случилось со мной недавно, когда я закрыл один проект Android Studio и импортировал другой проект Eclipse. Похоже, это какая-то ошибка в Android Studio, где он сохраняет некоторые настройки gradle из ранее открытого проекта, а затем запутывается в новом проекте.

Решение было чрезвычайно простым: закройте проект и полностью выключите Android Studio, прежде чем повторно открывать его, а затем импортировать / открыть новый проект. С этого момента все идет гладко.

Rehan
источник
4

Простое решение для меня было

  1. Сборка> Чистый проект
  2. Перезагрузите Android Studio
Холангун
источник
3

В моем случае установка «Версия Gradle» такая же, как и «Версия плагина Android» в разделе «Файл-> Структура проекта-> Проект» устранила проблему для меня.

Somesh
источник
3

Очевидно, у этой ошибки несколько причин. Вот что исправило для меня.

Я запускал такую ​​команду сборки:

./gradlew :testapp: build

Запуск без пробела устранил проблему:

./gradlew :testapp:build
Дэвид
источник
3

Я получил эту ошибку при переключении с одной ветки Git на другую, а затем при попытке запустить «Чистый проект». я использовалack искал имя задачи и нашел его в файле .iml.

Мое решение заключалось в том, чтобы регенерировать файл .iml проекта, щелкнув (в главном меню) Инструменты> Android> Синхронизировать проект с файлами Gradle. ( Благодаря этому ответу .)

Джош
источник
2

Иногда, если вы открыли два окна Android Studio и пытаетесь скомпилировать, эта проблема может возникнуть. Для меня, когда я компилировал поддерживаемый модуль конечной точки Google Cloud, который не был встроен в проект, а использовался для разных проектов Android Studio, и когда было открыто более одного экземпляра, эта ошибка возникала у меня. Но как только вы закроете другие окна, все будет хорошо. Иногда вам может потребоваться полностью перезапустить Android Studio.

Мохаммед Мухтар
источник
2

У меня возникла эта проблема, потому что не удалось найти путь к Android SDK. Мне не хватало local.propertiesфайла с ним или ANDROID_HOMEпеременной среды с ним.

Мортен Хольмгаард
источник
хороший человек, здесь то же самое. Добавлен ANDROID_SDK в мой ~ / .bash_profile, и он сработал
Гэри
1

Убедитесь, что у вас есть последние значения в ваших файлах gradle. На момент написания:

  • buildToolsVersion "21.1.2"

  • зависимости {classpath 'com.android.tools.build:gradle:1.1.0'}

Игорь Ганапольский
источник
1

Еще одно решение той же проблемы:

Это происходило со мной каждый раз, когда я импортировал проект eclipse в студию с помощью мастера (версия студии 1.3.2).

Совершенно случайно я обнаружил, что выход из студии Android с последующим перезапуском студии решает проблему.

Обидно, но надеюсь, что это кому-то поможет ...

Мик
источник
1
  1. Открыть командную строку
  2. затем перейдите в папку проекта через командную строку
  3. Введите gradlew build и запустите
Кришан
источник
1

Проблема

Я специально получал "[module_name]:prepareDebugUnitTestDependencies" task not foundошибку, каждый раз, когда запускал gradle build. Это случилось со мной после обновления моей Android Studio до 3.0.0.

изучение

Ранее я добавил параметры командной строки в компилятор на основе градиента, который вы можете найти в разделе: Файл -> Настройки -> Сборка, Выполнение, Развертывание -> Компилятор -> Параметры командной строки . В частности, я исключил ряд задач, включая вышеупомянутую. Хотя это нормально работало с предыдущей стабильной версией (в то время 2.3), похоже, что это было причиной сбоя сборки.

Решение

Это одно из многих возможных решений. Убедитесь, что у вас есть правильные параметры командной строки, указанные в параметрах: Файл -> Параметры -> Сборка, Выполнение, Развертывание -> Компилятор -> Параметры командной строки , и что ни один из них не вызывает этой проблемы.

В моем случае я удалил исключение этой задачи (и других задач, которые казались связанными), оставил несвязанные задачи исключенными, и это сработало!

Ace
источник
0

Задайте путь к корневой папке и после выполнения следующей команды

ex : cd C:\Users\maha\Documents\gradle\gs-gradle-master\initial
Маха
источник
0

Это то что я сделал

  1. Удалить папку .idea

    $ mv .idea .idea.bak

  2. Импортируйте проект снова

Кен Ратаначай С.
источник
0

Я удаляю / переименовываю .gradleпапку c:\users\Myuser\.gradleи перезапускаю Android Studio и работал у меня

ашкуфараз
источник
0

По-видимому, эта проблема вызвана Android Studio в различных ситуациях, но причиной является ошибка сборки при импорте существующего проекта в студию Android.

В моем случае я импортировал свой существующий проект, в котором я должен был установить несколько инструментов сборки, а затем, наконец, конфигурация сборки была выполнена с ошибкой. В этом случае просто выполните следующие действия

  1. Закройте текущий проект
  2. Файл> Создать> Импортировать проект (не используйте открытый недавний проект)

    Примечание. Я уверен, что такой ошибки нет в исходном коде, когда это произошло в проекте импорта .
Дева
источник
0

В моем случае я сталкиваюсь с такой проблемой, что параметры компиляции в Android Studio - «stacktrace». Измените stacktrace на --stacktrace , проблема решена.

введите описание изображения здесь

Тимьяу
источник
0

Я решил эту проблему. Вам просто нужно создать файл в папке Android.

Перейти в папку Android

Создайте файл local.properties

затем просто добавьте этот код в файл local.properties: -

Если вы используете MacBook, тогда sdk.dir = / Users / USERNAME / Library / android / sdk

если вы используете Windows, тогда sdk.dir = C: \ Users \ USERNAME \ AppData \ Local \ Android \ sdk

если вы используете Linux, тогда sdk.dir = / home / USERNAME / Android / sdk

если вы хотите знать, какова ваша система USERNAME, просто используйте команду для Mac whoami

а затем просто перезапустите команду response-native run-android

Благодарность :)

Усманский Разработчик
источник