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

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


Это решение для тех, кто намеренно не хочет обновляться до 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

поместите этот код в файл 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.