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

警告:(16日5)'buildTypes'不能应用于'(groovy.lang。关闭< 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,但还是收到了警告。

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


当前回答

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

其他回答

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

在重新构建之后。Gradle完全没问题。

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

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

android {
    ...
    buildTypes {
    }
}

在我的例子中,我的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

编辑: 这就是我最终解决这个问题的方式…

在Android Studio中导航到: |文件设置|构建,执行,部署|构建工具| Gradle 确保这是未检查的,尽管建议保持… 使用默认的Gradle包装器(推荐) 而这个是勾选的… 使用本地gradle分发 并且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

After trying, unsuccessfully, the suggestions in the following three threads, i re-made the entire project from scratch. I started a new Android Studio project, copied all of the original libs and main files into it ignoring any files which are generated by the build system and rebuilt the project. Everything was fine except all those "cannot be applied to '(groovy.lang.Closure)'" warnings re-appeared with a vengence. Then i went thru these suggestions again just to be certain that i had not overlooked something.

1 buildTypes不能应用于groovy.lang.Closure 进入Android Studio的设置,选择“Use gradle wrapper”: 在Android Studio中选择:文件\设置\构建,执行,部署\构建工具\Gradle Mark:使用默认的gradle包装器(默认) 这删除了构建文件中的所有“不能应用于”(groovy.lang.Closure')警告。

2 “依赖项”不能应用于“(groovy.lang.Closure)” 打开并编辑文件:yourproject/gradle/wrapper/gradle-wrapper. property。编辑内容如下图,然后保存。 删除这个文件夹:yourproject/.gradle。 点击同步项目与gradle文件,然后你就可以开始了。

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

我的配置是: Android Studio 1.3, compileSdk Version 22, buildTools Version "22.0.1"