La versión 3.3 de Gradle no es compatible con el método forTask () en BuildActionExecuter

111

Acabo de actualizar mi Android Studio a 3.0 canary 1. Ahora estoy trabajando en mi proyecto existente en Android Studio 3.0 canary 1. Por defecto, gradle: 3.0.0-alpha1 está configurado en mi proyecto: gradle_file. Así que cambié mi versión de Gradle a 2.2.3 y ahora recibo este error:

Error: no se pudo completar la ejecución de Gradle.

Causa: La versión de Gradle que estás usando (3.3) no es compatible con el método forTasks () en BuildActionExecuter. El soporte para esto está disponible en Gradle 3.5 y todas las versiones posteriores.

Adjunto mi archivo gradle aquí

// 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
}
Ajay Jayendran
fuente
5
¿Alguien puede sugerir cómo se pueden solucionar estos sin tener que actualizar la versión de Gradle y la versión del complemento de Android? Porque hacerlo requiere muchos otros cambios que no podemos hacer debido a algunas limitaciones comerciales.
Sasuke Uchiha

Respuestas:

196

Acabo de tener el mismo problema. Se corrigió cambiando Gradle distributionUrl en "gradle-wrapper.properties".

Esto es lo que he configurado:

#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

para más detalles

Video oficial para ayudar con la migración https://www.youtube.com/watch?v=oBsbI8ICYKg

ver también el comentario a continuación de @TmTron

falico
fuente
19
Para cualquiera que desee conocer la distribución más reciente, vaya al directorio services.gradle.org/distributions . Todos ellos están listados
IG Pascual
4
Lea el comentario de @IGPascual antes de cambiar a la versión específica, porque podría actualizar la versión a la versión más reciente disponible actualmente. Cuando se publicó este comentario, la versión actual es 4.0 (estable). Por lo tanto, es seguro si cambia adistributionUrl=https\://services.gradle.org/distributions/gradle-4.0-all.zip
HendraWD
4
Solo tenga cuidado cuando abra una aplicación de varios módulos: Android Studio solo puede mostrarle un campo de propiedades de contenedor de gradle en la vista Proyecto-Android. para asegurarse de cambiar todo, use Buscar en la ruta (CTRL + MAYÚS + F) y busque distributionUrl .
TmTron
También enfrenté el mismo problema con el siguiente error, 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. así que actualicé el archivo gradle-wrapper.properties paradistributionUrl=https\://services.gradle.org/distributions/gradle-3.5-all.zip
ViramP
1
Gracias por tu aviso, @TmTron, ese era mi problema. falico, si no le importa, creo que sería beneficioso resaltar el comentario de TmTron en su respuesta anterior.
BareMetalCoder
64

Cambio en el archivo "gradle-wrapper.properties".

Pon esta línea y sincroniza el proyecto

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

Esto funcionará. Para consultar la última versión, services.gradle.org/distributions

Después de cambiarlo, sincronice el proyecto, limpie y reconstruya el proyecto una vez desde el menú Generar .

Kailas Bhakade
fuente
4
Verifique services.gradle.org/distributions antes de cambiar a una versión específica, porque podría actualizar la versión a la última versión disponible actualmente. Cuando se publicó este comentario, la versión actual es 4.0 (estable). Por lo tanto, es seguro si cambia a distributionUrl=https\://services.gradle.org/distributions/g‌​radle-4.0-all.zip, porque es más estable que la milestone-1versión
HendraWD
Sí, tienes razón, siempre prefieres la versión estable que otra. Pero aún puedes usarlo. @HendraWD Gracias por el comentario.
Kailas Bhakade
Actualizando Android Studio de 2.3 a 3.0,
consulte
28

Esto sucedió al intentar construir una apk de depuración.

SOLUCIÓN: Actualice la versión de Gradle a 3.5

Vaya a Archivo -> Estructura del proyecto -> Proyecto -> Versión de Gradle = 3.5

Esto funciona para Android Studio 3.0

esta es la imagen del menú donde tienes que hacer el cambio

Paixols
fuente
Esta es la solución para aquellos que intencionalmente no quieren actualizar a gradle 4.
ram
No es así. Se actualiza a la versión 3.5 de Gradle, el mínimo para la funcionalidad que quiere usar.
Quinton M.
14

Siga los pasos a continuación:

  1. Abra su proyecto en Android Studio
  2. En el menú de Android, abra gradle-wrapper.properties
  3. Cambie la línea de la URL de distribución con la siguiente línea

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

  1. Eso es. Construye tu proyecto ahora.

Se adjunta una captura de pantalla para una mayor comprensión. ingrese la descripción de la imagen aquí

Naveed Ahmad
fuente
Error: No se pudo crear el directorio principal para el archivo de bloqueo C: \ Users \ Kaveesh \ .gradle \ wrapper \ dists \ gradle-4.1-all \ bzyivzo6n839fup2jbap0tjew \ gradle-4.1-all.zip.lck
Kaveesh Kanwal
Muestra el problema del bloqueo. android studio no puede crear el directorio.
Naveed Ahmad
5

Resolví el problema changinf distributionUrl en el siguiente código en el archivo gradle-wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
Saurabh Singh
fuente
2

Una vez agregue estos con Gradle de nivel superior

// 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
}
ViramP
fuente
1

Tenemos dos formas de lidiar con eso.

  1. Puede actualizar la versión de su gradle desde la versión anterior al producto de la versión 3.5;

  2. O bien, puede calcular su envoltorio gradle a la versión 4.1.

Todas las formas son útiles.

Benchur Wong
fuente
0
  1. Abra gradle-wrapper.properties
  2. Reemplazar:

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

Con:

distributionUrl=https://services.gradle.org/distributions/gradle-4.1-all.zip
  1. Ahora sincronizar proyecto

Haga clic aquí para comprender más

Wajid Khan
fuente
0

ponga este código en el archivo gradle-wrapper.properties y funcionará con usted

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