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
}

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


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 .


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


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í


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

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
}

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.



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


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.