Gradle версии 3.3 не поддерживает метод forTask () в BuildActionExecuter

111

Я только что обновил свою Android Studio до версии 3.0 canary 1. Сейчас я работаю над своим существующим проектом на Android Studio 3.0 canary 1. По умолчанию в моем проекте: gradle_file установлен gradle: 3.0.0-alpha1 . Поэтому я изменил свою версию 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
перейдете
4
Просто будьте осторожны при открытии многомодульного приложения: Android Studio может отображать только одно поле свойств Gradle-wrapper в представлении Project-Android. чтобы обязательно все изменить, используйте команду «Найти в пути» (CTRL + SHIFT + F) и выполните поиск по distributionUrl .
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".

Поставьте эту строчку и Sync Project-

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

Это сработает. Для проверки последней версии services.gradle.org/distributions

После изменения синхронизировать проект, очистить и перестроить проект один раз из меню сборки .

Кайлас Бхакаде
источник
4
Перед переходом на конкретную версию проверьте services.gradle.org/distributions , потому что вы можете просто обновить версию до последней доступной на данный момент версии. На момент публикации этого комментария текущая версия - 4.0 (стабильная). Так что это безопасно, если вы distributionUrl=https\://services.gradle.org/distributions/g‌​radle-4.0-all.zipmilestone-1
HendraWD
Да, вы правы, всегда предпочитаю стабильную версию другой. Но все же можно им пользоваться. @HendraWD Спасибо за комментарий.
Кайлас Бхакаде
Обновление Android Studio с 2.3 до 3.0,
ознакомьтесь с
28

Это произошло при попытке собрать отладочный apk.

РЕШЕНИЕ: Обновите версию Gradle до 3.5

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

Это работает для Android Studio 3.0

это изображение меню, в котором вы должны внести изменения

Paixols
источник
Это решение для тех, кто намеренно не хочет обновляться до Gradle 4.
ram
Это не так. Он обновляется до Gradle версии 3.5, минимальной функциональности, которую он хочет использовать.
Quinton M.
14

Пожалуйста, выполните следующие шаги:

  1. Откройте свой проект в студии Android
  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
Кавеш Канвал
Это показывает проблему блокировки. Студия Android не может создать каталог.
Naveed Ahmad
5

Я решил проблему, изменив distributionUrl в следующем коде в файле 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. Или вы можете определить свою оболочку Gradle до версии 4.1.

Все способы полезны.

Бенчур Вонг
источник
0
  1. Откройте gradle-wrapper.properties.
  2. Заменить:

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

С участием:

distributionUrl=https://services.gradle.org/distributions/gradle-4.1-all.zip
  1. Теперь синхронизировать проект

Нажмите здесь, чтобы узнать больше

Ваджид Хан
источник
0

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

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
Ахмед Мохамед
источник