我在我的项目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 确保这是未检查的,尽管建议保持… 使用默认的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 wrapper”:

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

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

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

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

这招对我很管用:

buildTypes.debug {
    ext.enableCrashlytics = false
}

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

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

2 Re Sync项目

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

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

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