web-dev-qa-db-fra.com

La déclaration de tâche "propre" personnalisée lors de l'utilisation des plug-ins Gradyle Lifecycle standard n'est pas autorisée

J'ajoute une bibliothèque à jCenter. Pour ce faire, j'ai dû ajouter des plugins au fichier build.gradle de mon projet. Cependant, je reçois l'erreur

La déclaration de tâche «propre» personnalisée lors de l'utilisation des plug-ins Gradeal Lifecycle standard n'est pas autorisée.

Je peux voir le bloc task clean et lorsque je le supprime, l'erreur disparaît. Je suppose que c’est tout ce que je dois faire, mais est-ce que cela faisait déjà quelque chose d’important? Si je supprime les plugins à un moment donné et que j'oublie d'ajouter le bloc clean, quelles en seront les conséquences?

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:2.3.1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

plugins {
    id "com.jfrog.bintray" version "1.7.3"
    id "com.github.dcendents.Android-maven" version "1.5"
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

Ceci et ceci cela n'a pas répondu de manière satisfaisante à la question.

30
Suragch

Vous ne devez pas essayer de remplacer la tâche clean par défaut, mais la configurer pour supprimer des éléments supplémentaires tels que

clean {
    delete rootProject.buildDir
}

Mais vérifiez d'abord s'il ne s'agit pas du comportement par défaut de la tâche de nettoyage.

Alternativement, si vous voulez pouvoir effectuer une action de nettoyage spécifique individuellement, vous pouvez également définir une tâche distincte et ajouter une dépendance telle que

task customClean(type: Delete) {
    delete rootProject.buildDir
}
clean.dependsOn customClean
30
Vampire

Supprimez ces lignes de votre code.

task clean(type: Delete) {
    delete rootProject.buildDir
}
6
Chaudhary Nouman

Dans le code donné:

allprojects {
repositories {
    google()
    jcenter()
    mavenCentral()
}

tasks.withType(JavaCompile) {
    sourceCompatibility = "1.8"
    targetCompatibility = "1.8"
}


task clean(type: Delete) {
    delete rootProject.buildDir
}
}

remplacez le task clean par task delete alors cela fonctionnera:

allprojects {
repositories {
    google()
    jcenter()
    mavenCentral()
}

tasks.withType(JavaCompile) {
    sourceCompatibility = "1.8"
    targetCompatibility = "1.8"
}


task delete(type: Delete) {
    delete rootProject.buildDir`
}
}
3
Laksh

tools> kotlin> configure dans le projet, vous devez sélectionner Android Gradle pas dégradé

 It worked for me

3
Bharat Kumar Emani

J'ai eu le même problème, malheureusement, pour moi, j'ai mis le task clean au mauvais endroit. J'ai eu ceci:

allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
    }

    tasks.withType(JavaCompile) {
        sourceCompatibility = "1.8"
        targetCompatibility = "1.8"
    }


    task clean(type: Delete) {
        delete rootProject.buildDir
    }
}

Ce qui devait être ceci: 

allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
    }

    tasks.withType(JavaCompile) {
        sourceCompatibility = "1.8"
        targetCompatibility = "1.8"
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
2
BlackHatSamurai

Après tant de recherches, nous avons constaté que nous devions simplement commenter la ligne de tâche propre de bulid.gradle (Projet) comme ci-dessous:

//    task clean(type: Delete) {
//        delete rootProject.buildDir
//    }][1][enter image description here][1]

Voir l'image pour conseil

0
Sahil Choudhary
enter code hereallprojects {
repositories {
    google()
    jcenter()
    maven {
        url 'https://maven.google.com'
    }
}

}

task clean(type: Delete) {
    delete rootProject.buildDir
}

si vous avez ajouté maven dans votre "build.gradle", vérifiez tous les crochets. Le code devrait être comme ci-dessus. Cela devrait résoudre le problème. Il est possible que des crochets soient placés à des endroits différents. 

0
dilip sarkar