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

我无法修复这个错误:

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

这是我的档案:

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
}
}
64221 次浏览

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

但即使没有这些,您的问题是在 ABC1插件配置中有一个 dependencies

android {
dependencies {
}
}

移除空的 dependencies块。

编辑: 我也开始在最新的 Android Studio 中得到这个错误,我所要做的就是添加一个更新版本的 Gradle 插件,然后编译 SdkVersion 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()
}
}

我打赌这个问题和给你警告的那段代码完全无关,很可能是你的预防文件。我的代码中有以下内容,得到了同样的警告:

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

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

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

我尝试了其他人提供的所有解决方案,但没有一个对我有效。 我结束了这些步骤,然后它像一个魅力。如果你遇到了同样的问题,那么试一试吧。

  1. 打开和编辑文件: yourproject/gradle/wrapper/gradle-wrapper.properties。编辑内容以更新分级分布版本,如下图所示,然后保存。
  2. 删除此文件夹: yourproject/.gradle
  3. 单击 Sync project with gradle files,然后就可以开始了。

enter image description here

你可以进入首选项,选择“使用默认级别包装器”,然后重建项目: enter image description here

去吧

窗户

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

麦克

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

并选择 Use default gradle wrapper

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

enter image description here

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

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

然后像这样设置当地的等级分布:

as shown here

  1. 关闭项目(档案/关闭项目) ,
  2. 在开始菜单中选择“打开现有的 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 工作室和 IntelliJ 的想法)

我在 android 工作室2.2中遇到了同样的问题,它对我很有用:

原创:

android {
...
}


dependencies {
...
}

android移动 dependencies:

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

为了避免这样的错误,可以在几个地方明确显示分级文件

configurations {

project.configurations {

或者

task {
description 'foo'

task {
setDescription 'foo'

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

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

File-> Invalidate Caches / Restart..

enter image description here

剪切并粘贴在“ android”部分和 Re-Sync (refresh) Project 的同一位置的“ buildTypes”

我在一个 Kotlin 项目的 IntelliJ 中遇到了类似的问题。看起来问题在于,在我的项目中,尽管它被设置为使用 JDK 8,但是语言和 API 版本却被设置为1.3。参见项目偏好 > 方面。在我的例子中,我选择了“使用项目设置”,但是手动设置每个方面也可以工作。

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

//noinspection GroovyAssignabilityCheck


buildFeatures {
viewBinding
}