Версія Gradle 3.3 не підтримує методTask () на BuildActionExecuter


111

Щойно я оновив свою Android Studio до 3.0 каналу 1. Тепер я працюю над своїм існуючим проектом на Android Studio 3.0 canary 1. За замовчуванням мій проект: 3.0.0-alpha1 встановлений у моєму проекті: gradle_file. Тому я змінив свою версію gradle на 2.2.3, і тепер я отримую цю помилку:

Помилка: не вдалося завершити виконання Gradle.

Причина: Версія Gradle, яку ви використовуєте (3.3), не підтримує метод forTasks () на BuildActionExecuter. Підтримка цього є в Gradle 3.5 та всіх пізніших версіях.

Я тут долучив свій файл gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

5
Хтось може підказати, як можна виправити їх, не оновлюючи версію gradle та версію плагіну для Android? Тому що для цього потрібно багато інших змін, яких ми не можемо зробити через деякі бізнес-обмеження.
Саске Учіха

Відповіді:


196

У мене щойно виникло те саме питання. Виправлено це шляхом зміни Gradle distributionUrl у "gradle-wrapper.properties".

Ось що я налаштував:

#Wed Mar 22 16:13:58 BRT 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

для отримання детальної інформації

Офіційне відео для мігації https://www.youtube.com/watch?v=oBsbI8ICYKg

дивіться також коментар нижче від @TmTron


19
Для всіх, хто хоче дізнатися про останній дистрибутив, перейдіть до каталогу services.gradle.org/distributions . Усі вони перераховані
IG Pascual

4
Будь ласка, прочитайте коментар @IGPascual, перш ніж переходити на конкретну версію, оскільки ви можете просто оновити версію до найновішої на даний момент версії. Коли цей коментар розміщено, поточний реліз становить 4,0 (стабільний). Тож це безпечно, якщо ви перейдете наdistributionUrl=https\://services.gradle.org/distributions/gradle-4.0-all.zip
HendraWD

4
Просто будьте обережні, коли ви відкриєте мультимодульну програму: Android Studio може відображати лише одне властивість оболонки з градуюванням у поданні Project-Android. щоб переконатися в тому, що все змінити, використовуйте Find in Path (CTRL + SHIFT + F) та шукайте дистрибуціюUrl .
TmTron

Я також зіткнувся з тією ж проблемою, що має помилку нижче, Cause: The version of Gradle you are using (3.3) does not support the forTasks() method on BuildActionExecuter. Support for this is available in Gradle 3.5 and all later versions. тому я оновив файл gradle-wrapper.properties дляdistributionUrl=https\://services.gradle.org/distributions/gradle-3.5-all.zip
ViramP

1
Дякую за вашу голову, @TmTron, це була моя проблема. falico, якщо ви не заперечуєте, я думаю, було б корисно підкреслити коментар TmTron у вашій відповіді вище.
BareMetalCoder

64

Зміна у файлі "gradle-wrapper.properties".

Покладіть цю лінію та синхронізуйте проект-

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

Це спрацює. Для перевірки останньої версії services.gradle.org/distributions

Після зміни Проект синхронізації , Очистити та відновити проект один раз із меню Build .


4
Перевірте services.gradle.org/distributions перед тим, як перейти на конкретну версію, оскільки ви могли просто оновити версію до останньої наявної на даний момент версії. Коли цей коментар розміщено, поточний реліз становить 4,0 (стабільний). Тож це безпечно, якщо ви перейдете на нього distributionUrl=https\://services.gradle.org/distributions/g‌​radle-4.0-all.zip, оскільки він стабільніший за milestone-1версію
HendraWD

Так, ви праві, завжди віддайте перевагу стабільній версії, ніж інші. Але все ж ви можете ним скористатися. @HendraWD Дякую за коментар.
Кайлас Бхакаде

Оновлення Android Studio з 2.3 до 3.0, перевірте офіційні вказівки від youtube.com/watch?v=oBsbI8ICYKg
Kailas Bhakade

28

Це сталося під час спроби створити налагодження apk.

РІШЕННЯ: Оновіть версію Gradle до 3,5

Перейдіть до Файл -> Структура проекту -> Проект -> Версія Gradle = 3.5

Це працює для Android Studio 3.0

це зображення меню, в якому потрібно внести зміни


Це рішення для тих, хто навмисно не хоче переходити на gradle 4.
ram

Це не так. Він оновлюється до Gradle Версії 3.5, мінімум для функціоналу, який він хоче використовувати.
Кінтон М.

14

Будь ласка, виконайте наступні кроки:

  1. Відкрийте свій проект в андроїд-студії
  2. У меню Android відкрийте gradle-wrapper.properties
  3. Змініть рядок URL-адреси розподілу на рядок нижче

distributionUrl = https: //services.gradle.org/distributions/gradle-4.1-all.zip

  1. Це воно. Створіть свій проект зараз.

Знімок екрана додається для більшого розуміння. введіть тут опис зображення


Помилка: не вдалося створити батьківський каталог для файлу блокування C: \ Users \ Kaveesh \ .gradle \ wrapper \ dists \ gradle-4.1-all \ bzyivzo6n839fup2jbap0tjew \ gradle-4.1-all.zip.lck
Kaveesh Kanwal

Він показує проблему з блокуванням. android studio не в змозі створити каталог.
Naveed Ahmad

5

Я вирішив проблему, змінивши distribuUrl у наступному коді у файлі gradle-wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

2

Одного разу додайте їх за допомогою Gradle верхнього рівня

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {

    repositories {
        maven { url 'https://maven.google.com' }
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0-alpha9'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url 'https://maven.google.com' }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

1

У нас є два способи впоратися з цим.

  1. Ви можете оновити версію свого gradle з раннього продукту до версії 3.5;

  2. Або ви можете розробити свою оболонку з gradele до версії 4.1.

Усі способи є корисними.




0

помістіть цей код у файл gradle-wrapper.properties, і він буде працювати з вами

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.