我在我的项目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,但还是收到了警告。

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


当前回答

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

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

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

Mark:使用默认的gradle包装器(默认)

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

其他回答

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

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

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

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

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

to

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.1" 
.. 
}

为我工作。

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

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

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