buildTypes不能应用于groovy.lang.Closure

我在我的项目gradle文件中得到这个警告:

警告:(16日5)'buildTypes'不能应用于'(groovy.lang.Closure<com.android.build.gradle.internal.dsl.BuildType >)

我的buildTypes部分是:

    buildTypes {
debug {
debuggable true
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
}
}

我目前使用Android Studio 1.1.0, compileSdkVersion 22, buildToolsVersion 22.0.0和targetSdkVersion 22。我试着退到21,但还是收到了警告。

是什么导致了这个警告&它是如何修复的?

48862 次浏览

我也有同样的问题。我开始了一个新项目,它可以工作,所以我只是复制了这个构建。gradle文件。在我的例子中,唯一的区别是缺少compileOptions部分。我把它从我的项目中移除,同步gradle,重新插入compileOptions部分,然后再次同步gradle。

我也有同样的问题。移动buildTypes作为android部分的最后一个条目对我来说很有效。

android {
...
buildTypes {
}
}

在gradle-wrapper中将distributionUrl=https://services.gradle.org/distributions/gradle-2.1-bin.zip更改为gradle-2.1-all.zip。物业为我解决了问题。

1在“android”部分的相同位置剪切粘贴“buildTypes”

2 Re Sync项目

这招对我很管用:

buildTypes.debug {
ext.enableCrashlytics = false
}


buildTypes.release {
debuggable false
zipAlignEnabled true
minifyEnabled false
signingConfig signingConfigs.release
}

对我来说,应用上述解决方案并不能解决问题。相反,我不得不在Android Studio中设置并选择“使用gradle wrapper”:

在Android Studio中选择: 文件\设置\构建,执行,部署\构建工具\Gradle

(Mac用户:Android Studio \偏好…\构建,执行,部署\构建工具\Gradle)

马克:使用默认gradle包装器(默认)

这删除了构建文件中的所有“不能应用于”(groovy.lang.Closure')警告。

修复Gradle问题的最简单方法是重新创建项目,让Android Studio重新配置Gradle。

只需选择“打开一个现有的Android Studio项目”并选择您的项目文件夹。

更多细节在这里

要解决这个问题,在你的Android Studio中去File ->设置。 在设置中选择构建,执行,部署->构建工具-> Gradle 然后选择“使用默认的gradle包装(推荐)”选项

重建后你的build.gradle将完全好。

当您将项目导入到您的环境中,而Gradle插件安装在与原始位置不同的位置时,问题就出现了。你只需要指出你的Gradle安装在哪里。

在彼此之间移动buildTypes或defaultConfig或任何东西并不是一个完整的解决方案

< p >编辑: 这就是我最终解决这个问题的方式
  1. 在Android Studio导航到:

    文件|设置|构建、执行、部署|构建工具| Gradle

    .
  2. 确保该选项未选中,尽管建议保持…

    使用默认Gradle包装器(推荐)

  3. 和这个是检查…

    使用本地gradle分布

  4. 并且Gradle Home被设置为这个,可能后面还有Gradle -n。n…

    C:/Program Files/Android/Android Studio1/gradle/gradle-2.4

    .

你可能需要重新启动Android Studio,重新构建项目等,但问题已经解决了。

编辑结束。

我发布这篇文章是为了建议其他刚接触这个问题的人忽略它。无论如何,项目都能完美运行。这只是构建系统中的一个bug,希望能尽快修复。我发表了一条评论并在这里投票,这又是一个活跃的话题…

https://code.google.com/p/android/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars&groupby=&sort=&id=76719

经过尝试,不成功,以下三个线程的建议,我从头开始重新制作整个项目。我开始了一个新的Android Studio项目,将所有原始的库和主文件复制到其中,忽略了构建系统生成的任何文件,并重新构建了项目。一切正常,除了那些“不能应用于(groovy.lang.Closure)”的警告再次出现。然后我又检查了一遍这些建议,只是为了确定我没有忽略什么。

< p > 1 buildTypes不能应用于groovy.lang.Closure . closure 进入Android Studio的设置,选择“Use gradle wrapper”: 在Android Studio中选择:文件\设置\构建,执行,部署\构建工具\Gradle Mark:使用默认的gradle包装器(默认) 这删除了构建文件中所有“不能应用于”(groovy.lang.Closure')的警告 < p > 2 < a href = " https://stackoverflow.com/questions/29769988/dependencies-cannot-be-applied-to-groovy-lang-closure " > & # 39;依赖# 39;不能应用于'(groovy.lang.Closure)' 打开并编辑文件:yourproject/gradle/wrapper/gradle-wrapper. property。编辑内容如下图,然后保存。 删除这个文件夹:yourproject/.gradle。 点击同步项目与gradle文件,然后你就可以开始了 < p > 3 https://github.com/DrKLO/Telegram/issues/870 < / p > 我的配置是: Android Studio 1.3, compileSdk Version 22, buildTools Version "22.0.1"

在你的Android Studio去文件->设置。接下来选择“构建,执行,部署->构建工具-> Gradle”,并选择“使用默认的Gradle包装器(推荐)”。

重建项目。

如果以上方法都不起作用,请执行以下操作

  1. 在“项目资源管理器”中将项目更改为Project透视图。
  2. 删除“.gradle”和“build”文件夹。
  3. 单击“文件 -> 使缓存失效/重新启动… -> 无效和重新启动
  4. 现在它工作了,快乐的编码。

在我更新Android Studio之后,我曾经有过这个警告。

当我去设置> >构建工具> > Gradle时,我发现本地Gradle路径无效,因为Gradle版本也从2.6更新到2.8。

修正了新的路径和重新同步gradle删除警告。

另一种方法是使用gradlewrapper

删除app文件夹下的gradle文件夹,重新同步项目

手头的问题是你可能在升级时导入的Android Studio设置,仍然指向gradle-2.4或Android Studio 1.5预期的其他版本。

要解决这个问题,你应该打开设置并进入构建,执行,部署>构建工具> Gradle并更改本地gradle分发的主路径选择默认的gradle包装器。

应用并重新同步您的项目。

我设法通过简单地这样做来解决我的问题: 点击“文件”,然后选择“Invalidate Caches/ Restart

.

我要做的就是移除

productFlavors {
}

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

警告消失了。

最后的样子是这样的

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

在我的例子中,我的buildTypes部分在我的productFlavors部分之上。互换他们的位置可以消除警告:

之前:

buildTypes {


debug {
minifyEnabled false
shrinkResources false
...//etc
}
}


productFlavors {
demo {
...//etc
}
}

后:

 productFlavors {
demo {
...//etc
}
}


buildTypes {


debug {
minifyEnabled false
shrinkResources false
...//etc
}
}

我使用的是Android Studio 2.1.2,在android部分的顶部配置如下:

android {
compileSdkVersion 24
buildToolsVersion "23.0.3"


defaultConfig {
applicationId "com.xyz.abc"
minSdkVersion 14
targetSdkVersion 24
//..etc

buildToolsVersion

android {
compileSdkVersion 24
buildToolsVersion "24.0.2"
..
}

android {
compileSdkVersion 24
buildToolsVersion "24.0.1"
..
}

为我工作。