android - ''dependencias'' no se pueden aplicar a ''(groovy.lang.Closure)''
gradle (15)
No puedo solucionar este error:
dependencies cannot be applied to ''(groovy.lang.Closure)
Este es mi archivo gradle:
buildscript {
repositories {
maven { url ''http://download.crashlytics.com/maven'' }
}
dependencies {
classpath ''com.crashlytics.tools.gradle:crashlytics-gradle:1.+''
}
}
apply plugin: ''android''
apply plugin: ''crashlytics''
repositories {
maven { url ''http://download.crashlytics.com/maven'' }
}
dependencies {
compile fileTree(dir: "$buildDir/native-libs", include: ''native-libs.jar'')
compile fileTree(dir: ''libs'', include: ''*.jar'')
compile project('':FRNDzTER_core'')
compile project('':cropper'')
compile project('':stickyListHeaders'')
compile "com.nostra13.universalimageloader:universal-image-loader:${rootProject.universalImageLoaderVersion}"
compile "com.google.android.gms:play- services:${rootProject.googlePlayServicesVersion}"
compile "de.keyboardsurfer.android.widget:crouton:${rootProject.croutonVersion}"
compile "com.nineoldandroids:library:${rootProject.nineoldandroidsVersion}"
compile ''com.github.chrisbanes.actionbarpulltorefresh:library:+''
compile ''com.crashlytics.android:crashlytics:1.+''
}
android{
compileSdkVersion rootProject.compileSdkVersion
buildToolsVersion rootProject.buildToolsVersion
defaultConfig {
minSdkVersion rootProject.minSdkVersion
targetSdkVersion rootProject.targetSdkVersion
versionCode rootProject.versionCode
versionName rootProject.versionName
}
buildTypes {
release {
debuggable rootProject.prodDebug
proguardFile ''proguard.cfg''
}
}
dependencies {
}
packagingOptions {
exclude ''META-INF/LICENSE.txt''
exclude ''META-INF/NOTICE.txt''
}
lintOptions {
abortOnError false
}
}
- Cerrar el proyecto (Archivo / Cerrar proyecto),
- Seleccione "Abrir un proyecto de Android Studio existente" en el menú de inicio y seleccione la carpeta que contiene su proyecto de Android.
Este trabajo para mi.
Apuesto a que el problema no tiene ninguna relación con el código que le da advertencias, lo más probable es que sea su archivo de protección. Tenía lo siguiente en mi código y recibí la misma advertencia:
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.txt''
}
}
Al comentar
runProguard false
, todos mis problemas desaparecen,
runProguard false
:)
Corte y luego pegue los "buildTypes" en el mismo lugar en la sección "android" y vuelva a sincronizar (actualizar) Proyecto
Entré en las preferencias para probar una de las otras respuestas cuando noté una advertencia de que mi directorio de inicio de
gradle
estaba equivocado.
Entonces abrí el explorador de archivos y elegí la versión más reciente de
gradle
, y todos los errores desaparecieron.
Imagen mostrada a continuación.
Ir
Ventanas
Archivo -> Configuración -> Compilación, ejecución, implementación -> Herramientas de compilación -> Gradle
Mac
Preferencia -> Compilación, ejecución, implementación -> Herramientas de compilación -> Gradle
y seleccione Usar envoltura de gradle predeterminada
Los archivos de Gradle pueden hacerse explícitos en varios lugares para evitar tales errores. Ej. Cambio
configurations {
a
project.configurations {
o
task {
description ''foo''
a
task {
setDescription ''foo''
Me encontré con un problema similar a esto en IntelliJ para un proyecto de Kotlin. Parece que el problema era que en mi proyecto, a pesar de que estaba configurado para usar JDK 8, las versiones de lenguaje y API de alguna manera se establecieron en 1.3. Ver Preferencias del proyecto> Facetas. En mi caso, marqué "usar la configuración del proyecto", pero la configuración manual por faceta también podría funcionar.
Mi problema es que todo el archivo build.setting con el que estaban ocupados
cannot be applied to ''(groovy.lang.Closure)''
mensajes de advertencia
cannot be applied to ''(groovy.lang.Closure)''
lugar de suceder en ninguna variable en particular.
He probado todas las soluciones proporcionadas por otros, pero ninguna de ellas me funciona. Terminé haciendo estos pasos y luego funciona de maravilla. Si tienes el mismo problema, pruébalo.
-
Abra y edite el archivo: su
yourproject/gradle/wrapper/gradle-wrapper.properties
. Edite contenido para actualizar la versión de distribución de gradle como se muestra en la imagen a continuación y luego guárdelo. -
Eliminar esta carpeta: su
yourproject/.gradle
. -
Haga clic en
Sync project with gradle files
, entonces está listo paraSync project with gradle files
.
Para solucionar el problema, simplemente cierre el proyecto, luego seleccione “Abrir un proyecto existente de Android Studio” en el menú de inicio y seleccione la carpeta que contiene su proyecto de Android. Cuidado, seleccione la carpeta , no el archivo de proyecto .iml.
Según lo que genera Android Studio, debe tener un archivo de proyecto de nivel superior
build.gradle
y otro para su aplicación
build.gradle
.
Nivel superior:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
maven { url ''http://download.crashlytics.com/maven'' }
}
dependencies {
classpath ''com.android.tools.build:gradle:1.1.0''
classpath ''com.crashlytics.tools.gradle:crashlytics-gradle:1.+''
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
maven { url ''http://download.crashlytics.com/maven'' }
}
}
Nivel de aplicación:
apply plugin: ''com.android.application''
apply plugin: ''crashlytics''
android{
compileSdkVersion rootProject.compileSdkVersion
buildToolsVersion rootProject.buildToolsVersion
defaultConfig {
minSdkVersion rootProject.minSdkVersion
targetSdkVersion rootProject.targetSdkVersion
versionCode rootProject.versionCode
versionName rootProject.versionName
}
buildTypes {
release {
debuggable rootProject.prodDebug
proguardFile ''proguard.cfg''
}
}
packagingOptions {
exclude ''META-INF/LICENSE.txt''
exclude ''META-INF/NOTICE.txt''
}
lintOptions {
abortOnError false
}
} `
dependencies {
compile fileTree(dir: "$buildDir/native-libs", include: ''native-libs.jar'')
compile fileTree(dir: ''libs'', include: ''*.jar'')
compile project('':FRNDzTER_core'')
compile project('':cropper'')
compile project('':stickyListHeaders'')
compile "com.nostra13.universalimageloader:universal-image- l loader:${rootProject.universalImageLoaderVersion}"
compile "com.google.android.gms:play- services:${rootProject.googlePlayServicesVersion}"
compile " "de.keyboardsurfer.android.widget:crouton:${rootProject.croutonVersion}"
compile "com.nineoldandroids:library:${rootProject.nineoldandroidsVersion}"
compile ''com.github.chrisbanes.actionbarpulltorefresh:library:+''
compile ''com.crashlytics.android:crashlytics:1.+''
}
Pero incluso sin todo eso,
su problema es que tiene
dependencies
dentro de la configuración de su complemento de
android
.
android {
dependencies {
}
}
eliminar ese bloque de
dependencies
vacío.
EDITAR: También comencé a recibir este error con el último Android Studio, todo lo que tenía que hacer era agregar una versión más nueva del complemento Gradle y compilar la Versión 22 de SDK.
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath ''com.android.tools.build:gradle:1.3.0''
classpath ''com.neenbedankt.gradle.plugins:android-apt:1.4''
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
mavenCentral()
}
}
Si ya está utilizando el "envoltorio de gradle predeterminado" y no ayuda:
In Menu click: File -> Invalidate Caches / Restart...
Si tampoco ayuda, intente en 2 pasos:
1) Delete ".gradle" folder (and "build" folder if you have it already)
2) In Menu click: File -> Invalidate Caches / Restart...
Después de reiniciar la advertencia debería desaparecer.
(Para mí funcionó y para Android Studio y para IntelliJ Idea)
Solucioné este problema con gradle 2.10.
Descárguelo aquí: http://gradle.org/gradle-download/
Y configure su distribución local de gradle de esta manera:
Tengo el mismo problema en Android Studio 2.2, funciona para mí:
original:
android {
...
}
dependencies {
...
}
mover
dependencies
en
android
:
android {
...
dependencies {
...
}
}