android studio - tools - buildTypes no se puede aplicar a groovy.lang.Closure
gradle version android studio (19)
1 Corte y pegue los "buildTypes" en la misma posición en la sección "android"
2 Re Sync Project
Recibo esta advertencia en mi archivo gradle de proyecto:
Advertencia: (16, 5) ''buildTypes'' no se puede aplicar a ''(groovy.lang.Closure <com.android.build.gradle.internal.dsl.BuildType>)''
Mi sección buildTypes es:
buildTypes {
debug {
debuggable true
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-project.txt''
}
}
Actualmente estoy usando Android Studio 1.1.0, compileSdkVersion 22, buildToolsVersion 22.0.0 y targetSdkVersion 22. Intenté retroceder a 21 pero aún recibía la advertencia.
¿Qué causa esta advertencia y cómo se soluciona?
Cambiar distribuciónUrl = https: //services.gradle.org/distributions/gradle-2.1-bin.zip a gradle-2.1-all.zip en gradle-wrapper.properties me resolvió el problema.
Cambio de
buildToolsVersion
de
android {
compileSdkVersion 24
buildToolsVersion "24.0.2"
..
}
a
android {
compileSdkVersion 24
buildToolsVersion "24.0.1"
..
}
trabajó para mi.
EDITAR: Así es como finalmente resolví este problema ...
-
Navegue en Android Studio para:
Archivo | Configuraciones | Construcción, Ejecución, Implementación | Herramientas de construcción | Gradle
-
Asegúrese de que esto no esté marcado, a pesar de que se recomienda mantener ...
Usar el envoltorio de Gradle predeterminado (recomendado)
-
y que este está marcado ...
Usar distribución local de gradle
-
y que Gradle Home está configurado para esto, posiblemente con un gradle-nn posterior ...
C: / Archivos de programa / Android / Android Studio1 / gradle / gradle-2.4
Es posible que deba reiniciar Android Studio, reconstruir el proyecto, etc., pero el problema está resuelto.
Fin de EDITAR.
Estoy publicando esto para aconsejar a cualquier otra persona nueva en este problema que lo ignore. El proyecto se ejecuta perfectamente independientemente. Esto es simplemente un error en el sistema de compilación, con suerte se solucionará pronto. Publiqué un comentario y voté aquí, donde nuevamente es un tema activo ...
Después de intentar, sin éxito, las sugerencias en los siguientes tres hilos, volví a hacer todo el proyecto desde cero. Comencé un nuevo proyecto de Android Studio, copié todas las bibliotecas originales y los archivos principales en él, ignorando los archivos generados por el sistema de compilación y reconstruí el proyecto. Todo estuvo bien, excepto que todas esas advertencias "no se pueden aplicar a ''(groovy.lang.Closure)''" reaparecieron con venganza. Luego volví a revisar estas sugerencias solo para asegurarme de que no había pasado por alto algo.
1 buildTypes no se puede aplicar a groovy.lang.Closure vaya a la configuración dentro de Android Studio y seleccione "Usar gradle wrapper": en Android Studio seleccione: Archivo / Configuración / Build, Execution, Deployment / Build tools / Gradle Mark: Use gradle predeterminado wrapper (predeterminado) Esto eliminó todas las advertencias ''no se puede aplicar a'' (groovy.lang.Closure '') en los archivos de compilación.
2 ''dependencias'' no se pueden aplicar a ''(groovy.lang.Closure)'' Abra y edite el archivo: su proyecto / gradle / wrapper / gradle-wrapper.propertie. Edite el contenido como se muestra a continuación y guárdelo. Eliminar esta carpeta: su proyecto / .gradle. Haga clic en Sincronizar proyecto con archivos gradle, entonces está listo para comenzar.
3 https://github.com/DrKLO/Telegram/issues/870
Mi configuración es: Android Studio 1.3, compileSdk Versión 22, buildTools Versión "22.0.1"
El problema en cuestión es que la configuración de Android Studio que probablemente importó en la actualización todavía apuntaba a gradle-2.4 o algunas otras versiones de las que Android Studio 1.5 espera.
Para resolver este problema, debe abrir Configuración e ir a Compilar, Ejecutar, Implementar> Herramientas de compilación> Gradle y cambiar la ruta de inicio de su distribución local de gradle o seleccionar el contenedor de gradle predeterminado.
Aplica y vuelve a sincronizar tu proyecto.
El problema se presenta cuando importa un proyecto a su entorno y el complemento Gradle se instala en una ubicación diferente de la que estaba en el original. Solo necesita señalar dónde está su instalación de Gradle.
Mover buildTypes o defaultConfig o lo que sea entre sí no es una solución completa
En mi caso, mi sección
buildTypes
estaba por encima de mi sección
productFlavors
.
Intercambiando sus posiciones se libró de la advertencia:
ANTES DE:
buildTypes {
debug {
minifyEnabled false
shrinkResources false
...//etc
}
}
productFlavors {
demo {
...//etc
}
}
DESPUÉS:
productFlavors {
demo {
...//etc
}
}
buildTypes {
debug {
minifyEnabled false
shrinkResources false
...//etc
}
}
Estoy usando Android Studio 2.1.2 con la siguiente configuración en la parte superior de mi sección de
android
:
android {
compileSdkVersion 24
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.xyz.abc"
minSdkVersion 14
targetSdkVersion 24
//..etc
En su Android Studio, vaya a Archivo -> Configuración. Luego elija Build, Execution, Deployment -> Build Tools -> Gradle y seleccione "Usar gradle wrapper predeterminado (recomendado)".
Proyecto de reconstrucción.
La forma más fácil de solucionar estos problemas de Gradle es recrear el proyecto para permitir que Android Studio reconfigure Gradle.
Simplemente seleccione "Abrir un proyecto existente de Android Studio" y elija su carpeta de proyecto.
Más detalles here .
Logré resolver mi problema simplemente haciendo esto: haga clic en "Archivo" y luego seleccione "Invalidar cachés / reiniciar
Para mí, el problema no se resolvió aplicando la solución anterior. En cambio, tuve que ir a la configuración dentro de Android Studio y seleccionar "Usar gradle wrapper":
En Android Studio, seleccione: Archivo / Configuración / Compilación, Ejecución, Implementación / Herramientas de compilación / Gradle
(Usuarios de Mac: Android Studio / Preferencias ... / Build, Execution, Deployment / Build tools / Gradle )
Marca: Usar el envoltorio de gradle predeterminado (predeterminado)
Esto eliminó todas las advertencias ''no se puede aplicar a'' (groovy.lang.Closure '') en los archivos de compilación.
Para resolver este problema, en su Android Studio, vaya a Archivo -> Configuración . En la configuración, elija Build, Execution, Deployment -> Build Tools -> Gradle y seleccione la opción "Usar gradle wrapper predeterminado (recomendado)" .
Después de reconstruir su build.gradle estará totalmente bien.
Si ninguna de las opciones anteriores funciona, haga lo siguiente
-
Cambie el proyecto a la perspectiva
Project
en el "Explorador de proyectos". -
Eliminar
.gradle
ybuild
carpetas. - Haga clic en Archivo -> Invalidar cachés / reiniciar ... -> Invalidar y reiniciar
- Ahora está funcionando, feliz codificación.
Solía tener esta advertencia, después de actualizar Android Studio.
Cuando fui a Configuración >> Herramientas de construcción >> Gradle , encontré que la ruta local de Gradle no era válida, ya que la versión de Gradle también se actualizó de 2.6 a 2.8.
Se corrigió la nueva ruta y la sincronización de Gradle eliminó la advertencia.
Otra forma es usar
gradlewrapper
.
Todo lo que tuve que hacer para eliminar
productFlavors {
}
De
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro''
}
}
productFlavors {
}
}
y la advertencia se fue.
El aspecto final fue así
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro''
}
}
}
Tuve el mismo problema. Mover los buildTypes como la última entrada en la sección de Android funcionó para mí.
android {
...
buildTypes {
}
}
Yo tuve el mismo problema. Comencé un nuevo proyecto y funcionó, así que simplemente copié el archivo build.gradle. En mi caso, la única diferencia fue la falta de la sección compileOptions. Lo eliminé de mi proyecto, sincronicé gradle, volví a insertar la sección compileOptions y luego sincronicé gradle nuevamente.
eliminar la carpeta gradle debajo de la carpeta de la aplicación y volver a sincronizar el proyecto
esto funcionó para mí:
buildTypes.debug {
ext.enableCrashlytics = false
}
buildTypes.release {
debuggable false
zipAlignEnabled true
minifyEnabled false
signingConfig signingConfigs.release
}