La versione 3.3 di Gradle non supporta il metodo forTask () su BuildActionExecuter


111

Ho appena aggiornato il mio Android Studio a 3.0 canary 1. Ora sto lavorando al mio progetto esistente su Android Studio 3.0 canary 1. Per impostazione predefinita, gradle: 3.0.0-alpha1 è impostato nel mio progetto: gradle_file. Quindi ho cambiato la mia versione gradle alla 2.2.3 e ora ricevo questo errore:

Errore: impossibile completare l'esecuzione di Gradle.

Causa: la versione di Gradle in uso (3.3) non supporta il metodo forTasks () su BuildActionExecuter. Il supporto per questo è disponibile in Gradle 3.5 e tutte le versioni successive.

Ho allegato il mio file gradle qui

// 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
Qualcuno può suggerire come risolverli senza dover aggiornare la versione gradle e la versione del plugin Android? Perché farlo richiede molti altri cambiamenti che non possiamo fare a causa di alcuni vincoli aziendali.
Sasuke Uchiha

Risposte:


196

Ho appena avuto lo stesso problema. Risolto il problema modificando Gradle distributionUrl in "gradle-wrapper.properties".

Ecco cosa ho configurato:

#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

per ulteriori dettagli

Video ufficiale per aiutare la sigaretta https://www.youtube.com/watch?v=oBsbI8ICYKg

vedere anche il commento sotto di @TmTron


19
Per chiunque desideri conoscere l'ultima distribuzione, vai alla directory services.gradle.org/distributions . Sono tutti elencati
IG Pascual

4
Si prega di leggere il commento @IGPascual prima di passare alla versione specifica, perché è possibile aggiornare la versione alla versione più recente attualmente disponibile. Quando questo commento è stato pubblicato, la versione corrente è la 4.0 (stabile). Quindi è sicuro se cambi condistributionUrl=https\://services.gradle.org/distributions/gradle-4.0-all.zip
HendraWD

4
Fai solo attenzione quando apri un'applicazione multi-modulo: Android Studio potrebbe mostrarti solo un campo delle proprietà gradle-wrapper nella vista Progetto-Android. per assicurarti di cambiare tutto, usa Trova nel percorso (CTRL + MAIUSC + F) e cerca distributionUrl .
TmTron

Ho anche 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. riscontrato lo stesso problema con l'errore di seguito, quindi ho aggiornato il file gradle-wrapper.properties perdistributionUrl=https\://services.gradle.org/distributions/gradle-3.5-all.zip
ViramP

1
Grazie per il tuo avviso, @TmTron, questo era il mio problema. falico, se non ti dispiace, penso che sarebbe utile evidenziare il commento di TmTron nella tua risposta sopra.
BareMetalCoder

64

Modifica nel file "gradle-wrapper.properties".

Metti questa riga e sincronizza il progetto-

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

Questo funzionerà. Per controllare l'ultima versione services.gradle.org/distributions

Dopo aver modificato, Sincronizza progetto, Pulisci e Ricostruisci una volta dal menu Compila .


4
Controlla services.gradle.org/distributions prima di passare a una versione specifica, perché potresti semplicemente aggiornare la versione all'ultima versione attualmente disponibile. Quando questo commento è stato pubblicato, la versione corrente è la 4.0 (stabile). Quindi è sicuro se si passa a distributionUrl=https\://services.gradle.org/distributions/g‌​radle-4.0-all.zip, perché è più stabile della milestone-1versione
HendraWD

Sì, hai ragione, preferisci sempre la versione stabile rispetto ad altre. Ma puoi ancora usarlo. @ HendraWD Grazie per il commento.
Kailas Bhakade,

Aggiornamento di Android Studio da 2.3 a 3.0, controllare le linee guida ufficiali da youtube.com/watch?v=oBsbI8ICYKg
Kailas Bhakade

28

Questo è successo durante il tentativo di creare l'apk di debug.

SOLUZIONE: aggiorna la versione Gradle alla 3.5

Vai a File -> Struttura del progetto -> Progetto -> Versione Gradle = 3.5

Funziona per Android Studio 3.0

questa è l'immagine del menu in cui devi apportare la modifica


Questa è la soluzione per coloro che intenzionalmente non vogliono passare al grado 4.
ram

Non è così. Si aggiorna alla versione 3.5 di Gradle, il minimo per le funzionalità che desidera utilizzare.
Quinton M.

14

Si prega di seguire i passaggi seguenti:

  1. Apri il tuo progetto in Android Studio
  2. Nel menu Android, apri gradle-wrapper.properties
  3. Modificare la riga dell'URL di distribuzione con la riga sottostante

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

  1. Questo è tutto. Costruisci il tuo progetto ora.

Lo screenshot è allegato per una maggiore comprensione. inserisci qui la descrizione dell'immagine


Errore: impossibile creare la directory principale per il file di blocco C: \ Users \ Kaveesh \ .gradle \ wrapper \ dists \ gradle-4.1-all \ bzyivzo6n839fup2jbap0tjew \ gradle-4.1-all.zip.lck
Kaveesh Kanwal

Mostra il problema del blocco. Android Studio non è in grado di creare la directory.
Naveed Ahmad

5

Ho risolto il problema modificando l'URL nel codice seguente nel file gradle-wrapper.properties

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

2

Una volta aggiunti questi con Gradle di livello superiore

// 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

Abbiamo due modi per affrontarlo.

  1. Puoi aggiornare la versione del tuo gradle dalla prima alla versione 3.5 del prodotto;

  2. Oppure puoi immaginare il tuo wrapper gradle alla versione 4.1.

Tutti i modi sono entrambi utili.



0
  1. Apri gradle-wrapper.properties
  2. Sostituire:

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

Con:

distributionUrl=https://services.gradle.org/distributions/gradle-4.1-all.zip
  1. Ora sincronizza il progetto

Fare clic qui per maggiori informazioni


0

metti questo codice nel file gradle-wrapper.properties e funzionerà con te

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.