Помилка збірки Android Studio, оскільки “Завдання” не знайдено в кореневому проекті “MyProject”.


89

Я отримую цю помилку при спробі побудувати свій проект після зміни ноутбука та оновлення до версії Android Studio 0.8.2.

ПОМИЛКА: Помилка побудови за винятком.

  • Що пішло не так: завдання '' не знайдено в кореневому проекті 'MyProject'.

  • Спробуйте: Запустіть завдання gradle, щоб отримати список доступних завдань. Запустіть параметр --stacktrace, щоб отримати трасування стека. Запустіть параметр --info або --debug, щоб отримати більше вихідних даних журналу.

БУДІВНИК не вдався

Ось мої файли 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 Я просто намагаюся очистити та відновити
TomRichardson

Ну .. Добре. Яку команду ви виконуєте?
Опал

8
Спробуйте закрити та знову відкрити Android Studio. У мене це спрацювало.
petter

2
Жодна відповідь не вибрана серед цих багатьох ??? Тоді принаймні опублікуйте свою відповідь, яка також допоможе іншим.
kAmol

Відповіді:


63

Хоча пізно відповісти, це важко для Google (окремі цитати), і незрозуміло, що відбувається. У мене ще немає репутації, щоб коментувати або просити про сферу дії (або розміщувати 3 посилання), тому ця відповідь може бути трохи нудною.

Щоб швидко відповісти, у вашому проекті може бути кілька плагінів Gradle.

Синхронізуйте Gradle Wrapper та плагіни

Моя проблема, здається, почалася з пошкодженого файлу IML. Android Studio (між закриттям та повторним відкриттям проекту) почав скаржитися, що IML зник (його не було), і модуль слід видалити, що я відхилив. Це зберігалося, я перейшов на AS 0.8.7 (канарський канал) і застряг у питанні OP (Завдання `` не знайдено в кореневому проекті). Це повністю заблокувало збірки, тому мені довелося копатись у 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)

    • Для перевірки побудуйте | 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 боролись між собою; одна розбилася, інша втратила стан і повідомила про помилку.

Якщо у вас є час, 1-годинне відео "Ніжний вступ до Gradle" (www.youtube.com/watch?v=OFUEb7pLLXw) справді допомогло мені підійти до файлів побудови Gradle, завдань, побудови рішень тощо.

Застереження

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


Чудова відповідь, нема за що вибачатися, і дякую за посилання на YouTube
Сабунку

Дякую за це. Для мене це зробив крок 3 в розділі "Інші перевірки":$ rm -rf ~/.gradle/
Рядок

24

Завантажте системний образ (цільового рівня вашого проекту для Android) з менеджера sdk для імпортованого проекту.

Ця помилка виникає, коли у вас не встановлено цільовий SDK вашого проекту Android у папці SDK

наприклад, Цільовим рівнем SDK вашого імпортованого проекту може бути android-19, а в папці sdk-> системні зображення у вас може бути встановлений android-21. тому вам доведеться завантажити системний образ android-19 та інші файли з менеджера sdk, або ви можете скопіювати його, якщо у вас є системний образ.


1
Це виправлено для мене - я також помітив жовте попередження "Не вдалося синхронізувати проект Gradle" в AS, коли я заглянув у вікно "Повідомлення", воно включало гіперпосилання для встановлення відсутнього цільового SDK за допомогою декількох клацань.
Містер Бангл,


9

Це трапилося зі мною нещодавно, коли я закрив один проект Android Studio та імпортував інший проект Eclipse. Здавалося, це якась помилка в Android Studio, де вона зберігає деякі налаштування gradle з раніше відкритого проекту, а потім заплутається в новому проекті.

Рішення було надзвичайно простим: закрийте проект і повністю вимкніть Android Studio, перш ніж відкривати його, а потім імпортувати / відкривати новий проект. З цього моменту все йде гладко.


4

Просте виправлення для мене було

  1. Збірка> Чистий проект
  2. Перезапустіть Android Studio

3

У моєму випадку встановлення «версії Gradle» так само, як і «версії плагіна Android» у меню Файл-> Структура проекту-> Проект вирішило проблему для мене.


3

Очевидно, ця помилка має кілька причин. Ось що мені це виправили.

Я запускав команду build наступним чином:

./gradlew :testapp: build

Запуск його без пробілу вирішив проблему:

./gradlew :testapp:build

3

Я отримав цю помилку при переході з однієї гілки Git на іншу, а потім при спробі запустити "Clean Project". Раніше я ackшукав ім’я Завдання і знайшов його у файлі .iml.

Моїм рішенням було відновити файл .iml проекту, натиснувши (у головному меню) Інструменти> Android> Синхронізувати проект із файлами Gradle. ( Завдяки цій відповіді .)


2

Іноді, якщо ви відкрили два вікна Android Studio і при спробі скомпілювати, ця проблема може трапитися. Для мене, коли я компілював підтриманий модуль Google Cloud Endpoint, який не був вбудований у проект, а скоріше був спільним для різних проектів Android Studio, і коли кілька разів відкрито екземпляр, ця помилка виникає для мене. Але як тільки ви закриєте інші вікна, все буде добре. Іноді вам може знадобитися перезапустити Android Studio взагалі.


2

Я отримав цю проблему, оскільки не зміг знайти шлях до SDK для Android. Мені бракувало local.propertiesфайлу з ним чи ANDROID_HOMEзмінної середовища.


молодець, те саме тут. Додав ANDROID_SDK до мого ~ / .bash_profile, і це спрацювало
Gary O 'Donoghue

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 і run

1

Проблема

Я спеціально отримував "[module_name]:prepareDebugUnitTestDependencies" task not foundпомилку кожного разу, коли запускав gradle build. Це трапилося зі мною після оновлення моєї Android Studio до 3.0.0.

Розслідування

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

Рішення

Це одне з багатьох можливих рішень. Переконайтеся, що у налаштуваннях командного рядка вказані правильні параметри в розділі: Файл -> Налаштування -> Збірка, виконання, розгортання -> Компілятор -> Параметри командного рядка , і що жоден з них не спричиняє цієї проблеми.

У моєму випадку я видалив виключення цього завдання (та інших завдань, які здавались пов’язаними), залишив не пов’язані завдання виключеними, і воно спрацювало!


0

Встановіть шлях до кореневої папки і після запуску наведеної нижче команди

ex : cd C:\Users\maha\Documents\gradle\gs-gradle-master\initial


0

Я видалив / перейменувати .gradleпапку c:\users\Myuser\.gradleта перезапустив Android Studio і працював у мене


0

Очевидно, ця проблема спричинена Android Studio у різній ситуації, але причиною є помилка збірки під час імпорту існуючого проекту в андроїд-студію.

У моєму випадку я імпортував свій існуючий проект, де я повинен був встановити кілька інструментів збірки, після чого нарешті конфігурація збірки була зроблена з помилкою. У цьому випадку просто виконайте наступні дії

  1. Закрийте поточний проект
  2. Файл> Новий> Імпорт проекту (не використовуйте відкритий нещодавній проект)

    Примітка. Я впевнений, що такого роду помилок немає у вихідному коді, коли це сталося в проекті імпорту .

0

У моєму випадку я стикаюся з такою проблемою, що параметри компіляції в Android Studio - це "стек-трасування". Змініть 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

Дякую :)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.