Android ';依赖关系';无法应用于';(groovy.lang.Closure)和#x27;

Android ';依赖关系';无法应用于';(groovy.lang.Closure)和#x27;,android,groovy,gradle,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.g

我无法修复此错误:

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
插件配置中有一个
依赖项

android {
    dependencies {
    }
}
删除空的
依赖项

编辑:我在最新的Android Studio中也出现了这个错误,我所要做的就是添加一个更新版本的Gradle插件,并编译DK22版本

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

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

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

通过注释掉
runProguard false
,我所有的问题都消失了,如图:)

我的问题是,整个build.setting文件被
占用,无法应用于“(groovy.lang.Closure)
警告消息,而不是发生在任何特定变量上

我尝试过其他人提供的所有解决方案,但没有一个对我有效。 我最后做了这些步骤,然后它就像一个符咒。如果你遇到同样的问题,那就试试看

  • 打开并编辑文件:
    yourproject/gradle/wrapper/gradle wrapper.properties
    。编辑内容以更新gradle分发版本,如下图所示,然后保存
  • 删除此文件夹:
    yourproject/.gradle
  • 单击
    将项目与gradle文件同步
    ,就可以开始了

  • 您可以转到“首选项”并选择“使用默认渐变包装器”,然后重建项目。它对我很有效:

    转到

    窗口

    文件->设置->构建、执行、部署->构建工具->渐变

    Mac

    首选项->构建、执行、部署->构建工具->渐变


    然后选择Use default gradle wrapper

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


    我用gradle 2.10解决了这个问题

    请在此处下载:

    并将您的本地渐变分布设置为:

  • 关闭项目(归档/关闭项目)
  • 在“开始”菜单上选择“打开现有Android Studio项目”,然后选择包含Android项目的文件夹

  • 这对我很有用。

    如果您已经在使用“默认渐变包装器”,但它没有帮助:

    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都有效)

    我在Android Studio 2.2中也有同样的问题,它对我有效:

    原件:

    android {
    ...
    }
    
    dependencies {
    ...
    }
    
    android
    中移动
    依赖项

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

    Gradle文件可以在多个位置显式设置,以避免此类错误。例如,改变

    configurations {
    


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

    我在Android Studio中通过使缓存无效并重新启动解决了这个问题

    文件->使缓存无效/重新启动..


    在“android”部分的同一位置剪切并粘贴“buildTypes”,然后重新同步(刷新)项目

    对于Kotlin项目,我在IntelliJ中遇到了类似的问题。看起来问题在于,在我的项目中,尽管设置为使用JDK 8,但语言和API版本不知何故设置为1.3。请参见项目首选项>面。在我的例子中,我勾选了“使用项目设置”,但手动设置每个方面也可能有效。

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


    我做了同样的问题:(老实说,我认为你应该修复你的Crouton、Universal Image Loader和googleplayServices依赖项中的额外引号和空格。你也应该只使用部分Google Play服务,因为它不起作用……你能给我fb id或任何其他信息吗……这样我们就可以锻炼了吗?请?…那样的话,我不知道你的bug是什么。)(上次我遇到这种情况时,我的android和gradle插件已经过时,我使用的配置类型不再依赖于您使用的是命令行还是IDE。如果是IDE,那么是哪个IDE。我非常确定这些都非常相关,正如我在那里的回答所示,我认为错误标记是一个错误,因此存在差异。)解决方案。这并不是说这里的首要答案不能对你的“当前”提出一些非常有效的一般观点gradle BuildScript查看此Daniel Wilson如果您将
    runProguard
    改为
    minifyEnabled
    ,是否有帮助?提供了更多信息,无需删除yourproject/.gradle目录。如果您选择这样做,请确保保存您在其中进行的任何自定义,例如使用org.gradl添加gradle.properties文件e、 daemon=true(一种常见的优化)。但是,您可以简单地重新生成,gradle包装器将下载distributionUrl中指定的新版本以及旧版本。旧版本目录保留在项目的gradle目录中是可以的。在
    gradle包装器中更新gradle版本。properties
    解决了我的问题。谢谢!有人知道吗解释为什么会发生这种情况?似乎在从1.4更新到1.5后,此设置被“重置”,以在我的ma上使用本地分发
    project.configurations {
    
    task {
        description 'foo'
    
    task {
        setDescription 'foo'
    
    //noinspection GroovyAssignabilityCheck
    
    buildFeatures {
            viewBinding
        }