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

时间:2015-04-21 10:46:00

标签: android groovy gradle

我无法解决此错误:

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

15 个答案:

答案 0 :(得分:37)

转到

<强>窗

档案 - &gt;设置 - &gt;构建,执行,部署 - &gt;构建工具 - &gt;摇篮

<强>苹果

偏好 - &gt;构建,执行,部署 - &gt;构建工具 - &gt; Gradle

并选择Use default gradle wrapper

答案 1 :(得分:22)

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

答案 2 :(得分:18)

我的问题是整个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,然后就可以了。
  4. Sensitivity_and_specificity

答案 3 :(得分:18)

如果您已经使用“默认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)

答案 4 :(得分:4)

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

enter image description here

答案 5 :(得分:1)

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

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

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

答案 6 :(得分:1)

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

原:

android {
...
}

dependencies {
...
}

dependencies中移动android

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

答案 7 :(得分:1)

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

File-> Invalidate Caches / Restart..

enter image description here

答案 8 :(得分:0)

  1. 关闭项目(文件/关闭项目),
  2. 在开始菜单中选择“打开现有的Android Studio项目”,然后选择包含Android项目的文件夹。
  3. 这项工作适合我。

答案 9 :(得分:0)

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

configurations {

project.configurations {

task {
    description 'foo'

task {
    setDescription 'foo'

答案 10 :(得分:0)

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

答案 11 :(得分:0)

剪切然后粘贴&#34; buildTypes&#34;在&#34; android&#34;中的同一个地方部分和重新同步(刷新)项目

答案 12 :(得分:0)

在Kotlin项目的IntelliJ中,我遇到了与此类似的问题。看起来问题出在我的项目中,即使它被设置为使用JDK 8,语言和API版本也被设置为1.3。请参阅项目首选项>构面。就我而言,我勾选了“使用项目设置”,但按每个方面手动设置它们也可能起作用。

答案 13 :(得分:0)

对于拥有 M1 Intellij IDEA 的人,只需添加 build.gradle(:app)

def run_step1(params):
# params is assumed to be a dict
# unpack params here if needed (path_step was not explicitly in the `for p in params_compute:` loop so I assume it can be stored in params)
    preprocess_result = run_preprocess(path_step, params)
    gpu_result = run_gpu(preprocess_result, params)
    post_gpu = run_postgpu(gpu_result, params) # Write a result file post_gpu.tif
    return post_gpu

def run_step2(post_gpu, params):
# unpack params here if needed
    data_file = rio.open(outputdir + "/post_gpu.tif").read() #opens the file written at the end of step1
    temp_result1 = process(data_file, params) 
    final_merge = merging(temp_result1, params)
    write = write_final(final_merge, params)
    return write

chain = []
for p in params_compute:
    y = dask.delayed(run_step1)(p)
    z = dask.delayed(run_step2)(y, p)
    chain.append(z)

dask.compute(*chain)

答案 14 :(得分:-1)

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

在此处下载:http://gradle.org/gradle-download/

并设置您的本地gradle分布:

as shown here