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

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


我也有同样的问题。我开始了一个新项目,它可以工作,所以我只是复制了这个构建。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\Preferences…\构建,执行,部署\构建工具\Gradle)

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

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


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

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

详情请点击这里。


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

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


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

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


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

在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"


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

重建项目。


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

在“项目资源管理器”中将项目更改为项目透视图。 删除.gradle和构建文件夹。 点击文件-> Invalidate Caches / Restart…->失效并重启 现在它工作了,快乐的编码。


在我更新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包装器。

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


我设法通过简单地这样做来解决我的问题: 点击“文件”,然后选择“无效缓存/重新启动”


我要做的就是移除

productFlavors {
}

From

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" 
.. 
}

to

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.1" 
.. 
}

为我工作。