android studio - para - No se permite declarar una tarea ''limpia'' personalizada cuando se usan los complementos estándar del ciclo de vida de Gradle
generate apk android studio (7)
6m Bien, recibo un error en Gradle que no puede limpiar el archivo de proyecto raíz.
: 25 AM Fallo en la sincronización de Gradle: no está permitido declarar una tarea ''limpia'' personalizada cuando se usan los complementos estándar del ciclo de vida de Gradle.
código de error info-ide.actionsShowFilePathAction Exit Code 1
Clean Triggers nom run clean depende de "npmInstall"
En el documento de Gradle 4.7, el proyecto en el directorio donde se ejecuta la compilación también se configura, pero solo cuando Gradle se ejecuta sin ninguna tarea. De esta manera, las tareas predeterminadas se comportan correctamente cuando los proyectos se configuran a pedido.
Configuración a pedido del complemento Android Gradle 4.6 para Gradle 3.01 o 3.1.0 con el archivo de propiedades Gradle Gradle org.gradleconfigureondemand = false
Entonces, lo que hice fue comentar la tarea limpia y ahora tengo una compilación de palabras,
Creo que lo que sucedió es que esta secuencia de comandos funciona si ha creado y modificado el proyecto. Cuando descargas el proyecto no lo has construido por primera vez. Por lo tanto, no hay una ruta de proyecto raíz que limpiar, ya que nunca se ha construido. Esto hace que falle. Al comentarlo la primera vez, no aparece el error.
Aquí está el código. // Archivo de compilación de nivel superior donde puede agregar opciones de configuración comunes a todos los subproyectos / módulos.
`buildscript {ext.kotlin_version = ''1.2.41''
ext.support_version = ''26.1.0''
repositories {
google()
jcenter()
}
dependencies {
classpath ''com.android.tools.build:gradle:3.1.2''
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
apply plugin: ‘kotlin’
allprojects {
repositories {
google()
jcenter()
}
}
/*
task clean(type: Delete) {
delete rootProject.buildDir
} */
''
Estoy agregando una biblioteca a jCenter, por lo que tuve que agregar algunos complementos al archivo build.gradle de mi proyecto. Sin embargo, estoy recibiendo el error
No se permite declarar una tarea "limpia" personalizada cuando se usan los complementos estándar del ciclo de vida de Gradle.
Puedo ver el bloque de task clean
y cuando lo elimino, el error desaparece. Supongo que es todo lo que tengo que hacer, pero ¿estaba haciendo algo importante antes? Si elimino los complementos en algún momento y me olvido de volver a agregar el bloque clean
, ¿qué graves consecuencias hay en la tienda?
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
}
This y this no respondieron satisfactoriamente a la pregunta.
Eliminar estas líneas de su código.
task clean(type: Delete) {
delete rootProject.buildDir
}
En el código dado:
allprojects {
repositories {
google()
jcenter()
mavenCentral()
}
tasks.withType(JavaCompile) {
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
}
task clean(type: Delete) {
delete rootProject.buildDir
}
}
Reemplace la task clean
con la task delete
entonces funcionará
allprojects {
repositories {
google()
jcenter()
mavenCentral()
}
tasks.withType(JavaCompile) {
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
}
task delete(type: Delete) {
delete rootProject.buildDir`
}
}
No debe intentar anular la tarea de clean
predeterminada, sino que debe configurarla para eliminar elementos adicionales como
clean {
delete rootProject.buildDir
}
Pero compruebe primero si este no es el comportamiento predeterminado de la tarea limpia de todos modos.
Alternativamente, si desea poder realizar una acción limpia específica individualmente, también puede definir una tarea separada y agregar una dependencia como
task customClean(type: Delete) {
delete rootProject.buildDir
}
clean.dependsOn customClean
Tuve este mismo problema, desafortunadamente, para mí puse la task clean
en el lugar equivocado. Tuve esto:
allprojects {
repositories {
google()
jcenter()
mavenCentral()
}
tasks.withType(JavaCompile) {
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
}
task clean(type: Delete) {
delete rootProject.buildDir
}
}
Que necesitaba ser esto:
allprojects {
repositories {
google()
jcenter()
mavenCentral()
}
tasks.withType(JavaCompile) {
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
enter code hereallprojects {
repositories {
google()
jcenter()
maven {
url ''https://maven.google.com''
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Si ha agregado maven en su "build.gradle", verifique todos los paréntesis. El código debe ser como el anterior. Debería resolver el problema. Es posible que los corchetes se coloquen en diferentes lugares.