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,但仍然收到警告。

是什么原因引起了这个警告?它是如何修复的

对于我来说,应用上述解决scheme并没有解决问题。 相反,我不得不去Android Studio中的设置,并select“使用gradle包装”:

在Android Studio中select: File \ Settings \ Build,Execution,Deployment \ Build tools \ Gradle

(Mac用户: Android Studio \ Preferences … \ Build,Execution,Deployment \ Build tools \ Gradle

Mark: 使用默认的Gradle包装(默认)

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

我遇到过同样的问题。 将buildTypes作为android部分的最后一个条目移动给我工作。

 android { ... buildTypes { } } 

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

2重新同步项目

要解决这个问题,在你的Android Studio转到文件 – >设置 。 在设置中selectBuild,Execution,Deployment – > Build Tools – > Gradle并select“Use default gradle wrapper(recommended)”选项。

重build后你的build.gradle将会完全正常。

如果以上选项都不起作用,请执行以下操作

  1. 在“Project Explorer”中将项目更改为Project透视图。
  2. 删除.gradle和生成文件夹。
  3. 单击文件 – > 无效caching/重新启动… – > 无效和重新启动
  4. 现在它的工作,快乐的编码。

我设法解决我的问题,只要这样做:点击“文件”,然后select“无效的caching/重新启动

解决这个Gradle问题最简单的方法是重新创build项目,让Android Studio重新configurationGradle。

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

更多细节在这里 。

这对我工作:

 buildTypes.debug { ext.enableCrashlytics = false } buildTypes.release { debuggable false zipAlignEnabled true minifyEnabled false signingConfig signingConfigs.release } 

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

移动buildTypes或者defaultConfig或者其他什么都不是一个完整的解决scheme

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

要解决这个问题,你应该打开设置 ,然后进入构build,执行,部署>构build工具> Gradle,并更改本地Gradle分配的主pathselect默认的Gradle包装。

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

我有同样的问题。 我开始了一个新的项目,它工作,所以我刚刚复制build.gradle文件。 在我的情况唯一的区别是缺乏compileOptions部分。 我从我的项目中删除它,同步gradle,重新插入compileOptions部分,然后再次同步gradle。

在你的Android Studio转到文件 – >设置。 接下来selectBuild,Execution,Deployment – > Build Tools – > Gradle并select“使用默认的gradle wrapper(推荐)”。

重build项目。

在我的情况下,我的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部分的顶部使用以下configuration:

 android { compileSdkVersion 24 buildToolsVersion "23.0.3" defaultConfig { applicationId "com.xyz.abc" minSdkVersion 14 targetSdkVersion 24 //..etc 

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

当我去设置>>构build工具>> Gradle我发现本地Gradlepath是无效的,因为gradle版本更新以及从2.6到2.8。

修复了新的path和重新同步gradle删除警告。

另一种方法是使用gradlewrapper

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

编辑:这是我终于解决了这个问题…

  1. 在Android Studio中导航到:

    文件| 设置| 构build,执行,部署| 构build工具| 摇篮

  2. 确保这是不受限制的,尽pipebuild议保持…

    使用默认的Gradle Wrapper(推荐)

  3. 而这一个检查…

    使用本地gradle分发

  4. 而Gradle Home已经设置了这个function,可能还会有一个gradle-nn …

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

您可能需要重新启动Android Studio,重build项目等,但问题解决了。

编辑结束。

我发布这个build议任何新的这个问题的人忽略它。 该项目无论如何运行。 这只是构build系统中的一个错误,希望能尽快解决。 我发表了评论,并在这里投票,这又是一个活跃的话题…

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

在尝试了以下三个线程的build议之后,我没有成功,我从头开始重新制作整个项目。 我开始了一个新的Android Studio项目,将所有的原始库和主文件复制到它,忽略由生成系统生成的任何文件,并重build项目。 一切都很好,除了所有那些“不能应用于”(groovy.lang.Closure)警告再次出现的复仇。 然后,我再次通过这些build议,以确保我没有忽视的东西。

1 buildTypes不能应用到groovy.lang.Closure去Android Studio中的设置,并select“使用gradle wrapper”:在Android Studio中select:File \ Settings \ Build,Execution,Deployment \ Build tools \ Gradle Mark:使用默认Gradle包装器(默认)这在构build文件中删除了所有'不能应用于'(groovy.lang.Closure')警告。

2 '依赖关系'不能应用于'(groovy.lang.Closure)'打开并编辑文件:yourproject / gradle / wrapper / gradle-wrapper.propertie。 编辑内容如下图,然后保存。 删除这个文件夹:yourproject / .gradle。 点击同步项目与Gradle文件,然后你很好去。

3 https://github.com/DrKLO/Telegram/issues/870

我的configuration是:Android Studio 1.3,compileSdk版本22,buildTools版本“22.0.1”

删除应用程序文件夹下的gradle文件夹和resync项目

所有我必须做的删除

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

更改buildToolsVersion

 android { compileSdkVersion 24 buildToolsVersion "24.0.2" .. } 

 android { compileSdkVersion 24 buildToolsVersion "24.0.1" .. } 

为我工作。