'dependencies'不能应用于'(groovy.lang.Closure)'

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了'dependencies'不能应用于'(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.+'
}

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

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()
    }
}
另一答案
  1. 关闭项目(文件/关闭项目),
  2. 在开始菜单中选择“打开现有的Android Studio项目”,然后选择包含Android项目的文件夹。

这对我有用。

另一答案

可以在多个位置显示Gradle文件以避免此类错误。例如。更改

configurations {

project.configurations {

要么

task {
    description 'foo'

task {
    setDescription 'foo'
另一答案

要解决此问题,只需关闭项目,然后在开始菜单中选择“打开现有的Android Studio项目”,并选择包含Android项目的文件夹。请注意,选择文件夹,而不是.iml项目文件。

另一答案

剪切然后将“buildTypes”粘贴到“android”部分和重新同步(刷新)项目中的相同位置

另一答案

我在IntelliJ中为Kotlin项目遇到了类似的问题。看起来问题是在我的项目中,即使它被设置为使用JDK 8,语言和API版本也以某种方式设置为1.3。请参阅项目首选项>构面。在我的情况下,我勾选了“使用项目设置”,但是每个方面手动设置它们也可以。

另一答案

我用gradle 2.10解决了这个问题。

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

并设置您的本地gradle分布如下:

另一答案

您可以转到“首选项”并选择“使用默认gradle包装器”,然后重建项目。它对我很有用:enter image description here

另一答案

视窗

文件 - >设置 - >构建,执行,部署 - >构建工具 - > Gradle

苹果电脑

首选项 - >构建,执行,部署 - >构建工具 - > Gradle

并选择使用默认gradle包装器

另一答案

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

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

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

enter image description here

另一答案

如果您已经使用“默认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主目录错误时,我进入首选项尝试其他答案之一。所以我打开文件浏览器并选择了较新的gradle版本,所有错误都消失了。图片如下所示。

enter image description here

另一答案

我敢打赌,这个问题与给你警告的代码完全无关,很可能是你的proguard文件。我的代码中有以下内容并得到相同的警告:

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

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

另一答案

我在android studio 2.2中遇到同样的问题,它对我有用:

原版的:

android {
...
}

dependencies {
...
}

dependencies移动android

android {
...
   dependencies {
   ...
   }
}
另一答案

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

File-> Invalidate Caches / Restart..

enter image description here

以上是关于'dependencies'不能应用于'(groovy.lang.Closure)'的主要内容,如果未能解决你的问题,请参考以下文章

FullCalendar计划程序 - 类型'字符串'不能分配给'EmitterInterface []类型

The container 'Maven Dependencies' references non existing library '

vue 使用webpack 打包 出现UnhandledPromiseRejectionWarning: Error: “dependency“ is not a valid chunk sort m

android studio gradle dependencies 包存放在哪儿?

Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'.

在以下任何来源中均未找到插件[id:'io.spring.dependency-management',版本:'1.0.5.RELEASE',apply:false]: