'依赖项'不能应用于'(groovy.lang.Closure)'

我无法解决这个错误:

dependencies cannot be applied to '(groovy.lang.Closure) 

这是我的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 } } 

根据Android Studio生成的内容,您需要有一个顶级项目文件build.gradle ,另一个用于您的应用程序build.gradle

顶层:

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

应用级别:

 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.+' } 

但即使没有这一切, 你的问题是你的android插件configuration中有一个dependencies

 android { dependencies { } } 

删除那个空的dependencies块。

编辑:我也开始得到这个错误与最新的Android Studio,我所要做的只是添加一个较新版本的Gradle插件,并compileSdkVersion 22。

 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() } } 

你可以去Preferences并select“use default gradle wrapper”然后重build项目。 它对我来说很好: 在这里输入图像说明

视窗

文件 – >设置 – >生成,执行,部署 – >生成工具 – > Gradle

苹果电脑

首选项 – >构build,执行,部署 – >构build工具 – > Gradle

并select使用默认的gradle包装器

我的问题是,整个build.setting文件被占用cannot be applied to '(groovy.lang.Closure)'警告消息,而不是发生在任何特定的variables。

我已经尝试了其他人提供的所有解决scheme,但没有一个适合我。 我结束了这些步骤,然后它就像一个魅力。 如果遇到同样的问题,请尝试一下。

  1. 打开并编辑文件: yourproject/gradle/wrapper/gradle-wrapper.properties 。 编辑内容以更新gradle分发版本,如下图所示,然后保存。
  2. 删除这个文件夹: yourproject/.gradle
  3. 点击Sync project with gradle files ,然后你很好去。

在这里输入图像说明

如果你已经在使用“默认的gradle包装器”,并没有帮助:

 In Menu click: File -> Invalidate Caches / Restart... 

如果它也不能帮助尝试分两步:

 1) Delete ".gradle" folder (and "build" folder if you have it already) 2) In Menu click: File -> Invalidate Caches / Restart... 

重新启动警告后应该消失。

(对我来说,它适用于Android Studio和IntelliJ Idea)

当我注意到我的gradle主目录错误的警告时,我进入了首选项来尝试其他答案之一。 所以我打开了文件浏览器,select了更新的gradle版本,所有的错误都消失了。 图像如下所示。

在这里输入图像说明

我敢打赌,这个问题与给你警告的那段代码完全无关,很可能是你的proguard文件。 我在我的代码中得到了以下警告:

 buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } 

通过评论runProguard false ,我所有的问题消失,去图:)

我在android studio 2.2中有同样的问题,它为我工作:

原版的:

 android { ... } dependencies { ... } 

android移动dependencies

 android { ... dependencies { ... } } 
  1. closures项目(文件/closures项目),
  2. 在开始菜单中select“打开现有的Android Studio项目”,然后select包含Android项目的文件夹。

这为我工作。

Gradle文件可以在几个地方显式来避免这种错误。 如改变

 configurations { 

 project.configurations { 

要么

 task { description 'foo' 

 task { setDescription 'foo' 

要解决这个问题,只需closures项目,然后在开始菜单中select“打开现有的Android Studio项目”,然后select包含Android项目的文件夹。 当心,请select文件夹 ,而不是.iml项目文件。

我通过使caching无效并重新启动来解决Android Studio中的问题。

File-> Invalidate Caches / Restart..

在这里输入图像说明

剪切,然后粘贴在“android”部分和重新同步(刷新)项目相同的地方“buildTypes”

我用gradle 2.10修复了这个问题。

在这里下载: http : //gradle.org/gradle-download/

并设置您的本地gradle分布像这样:

如下所示