buildTypes cannot be applied to groovy.lang.Closure
Android StudioAndroid Gradle-PluginAndroid Studio Problem Overview
I'm getting this warning in my project gradle file:
> Warning:(16, 5) 'buildTypes' cannot be applied to '(groovy.lang.Closure< com.android.build.gradle.internal.dsl.BuildType>)'
My buildTypes section is:
buildTypes {
debug {
debuggable true
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
}
}
I'm currently using Android Studio 1.1.0, compileSdkVersion 22, buildToolsVersion 22.0.0, and targetSdkVersion 22. I tried backing down to 21 but was still getting the warning.
What causes this warning & how is it fixed?
Android Studio Solutions
Solution 1 - Android Studio
For me the problem was not solved by applying the above solution. Instead I had to go to the settings within Android Studio and select "Use gradle wrapper":
In Android Studio select: File\Settings\Build, Execution, Deployment\Build tools\Gradle
(Mac Users: Android Studio\Preferences...\Build, Execution, Deployment\Build tools\Gradle )
Mark: Use default gradle wrapper (default)
This removed all 'cannot be applied to '(groovy.lang.Closure') warnings in the build files.
Solution 2 - Android Studio
I had the same issue. Moving the buildTypes as the last entry in the android section worked for me.
android {
...
buildTypes {
}
}
Solution 3 - Android Studio
1 Cut and Paste the "buildTypes" at the same position in "android" section
2 Re Sync Project
Solution 4 - Android Studio
To solve this issue, in your Android Studio go to File -> Settings. In settings choose Build, Execution, Deployment -> Build Tools -> Gradle and select "Use default gradle wrapper (recommended)" option.
After rebuild your build.gradle will be totally fine.
Solution 5 - Android Studio
If none of the above options work, then do the Following
- Change the project to
Project
perspective in the "Project Explorer". - Delete
.gradle
andbuild
folders. - Click File -> Invalidate Caches / Restart... -> Invalidate and Restart
- Now its working, happy coding.
Solution 6 - Android Studio
I managed to solve my issue by simply doing this: Click "File" then select "Invalidate Caches/ Restart
Solution 7 - Android Studio
The easiest way to fix this Gradle issues is recreating the project to let Android Studio reconfigure Gradle.
Simply select "Open an existing Android Studio project" and pick your project folder.
More details here.
Solution 8 - Android Studio
this worked for me:
buildTypes.debug {
ext.enableCrashlytics = false
}
buildTypes.release {
debuggable false
zipAlignEnabled true
minifyEnabled false
signingConfig signingConfigs.release
}
Solution 9 - Android Studio
The problem presents when you import a project into your environment and the Gradle plugin is installed in a different location than what it was in the original. You just need to point out where your Gradle installation is.
Moving buildTypes or defaultConfig or whatever between each other is not a complete solution
Solution 10 - Android Studio
The issue at hand is that your Android Studio settings that you probably imported at upgrade, was still pointing to gradle-2.4 or some other versions than Android Studio 1.5 expects.
To solve this problem, you should open up Settings and go to Build, Execution, Deployment > Build Tools > Gradle and change your local gradle distribution's home path or select the default gradle wrapper.
Apply and re-sync your project.
Solution 11 - Android Studio
I had the same problem. I started a new project and it worked, so I just copied the build.gradle file. In my case the only difference was the lack of the compileOptions section. I removed it from my project, synced gradle, re-inserted the compileOptions section and then synced gradle again.
Solution 12 - Android Studio
In your Android Studio go to File -> Settings. Next choose Build, Execution, Deployment -> Build Tools -> Gradle and select "Use default gradle wrapper (recommended)".
Rebuild project.
Solution 13 - Android Studio
In my case my buildTypes
section was above my productFlavors
section. Interchanging their positions got rid of the warning:
BEFORE:
buildTypes {
debug {
minifyEnabled false
shrinkResources false
...//etc
}
}
productFlavors {
demo {
...//etc
}
}
AFTER:
productFlavors {
demo {
...//etc
}
}
buildTypes {
debug {
minifyEnabled false
shrinkResources false
...//etc
}
}
I am using Android Studio 2.1.2 with the following config at the top of my android
section:
android {
compileSdkVersion 24
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.xyz.abc"
minSdkVersion 14
targetSdkVersion 24
//..etc
Solution 14 - Android Studio
Changing distributionUrl=https://services.gradle.org/distributions/gradle-2.1-bin.zip to gradle-2.1-all.zip in gradle-wrapper.properties solved problem for me.
Solution 15 - Android Studio
I used to have this warning, after I updated Android Studio.
When I went to Settings>>Build Tools>>Gradle I found Local Gradle path was invalid, since gradle version was updated as well from 2.6 to 2.8.
Fixed the new path and re-sync gradle removed the warning.
Another way is to use gradlewrapper
.
Solution 16 - Android Studio
EDIT: This how i finally solved this problem...
-
Navigate in Android Studio to:
File | Settings | Build, Execution, Deployment | Build Tools | Gradle
-
Ensure that this is unchecked, despite that it is recommended to keep ...
Use Default Gradle Wrapper (recommended)
-
and that this one is checked ...
Use local gradle distribution
-
and that Gradle Home is set to this, with possibly a later gradle-n.n ...
C:/Program Files/Android/Android Studio1/gradle/gradle-2.4
You may have to restart Android Studio, rebuild the project, etc but the problem is solved.
End of EDIT.
I am posting this to advise anyone else new to this problem to ignore it. The project runs perfectly regardless. This is quite simply a bug in the build system, hopefully to be fixed soon. I posted a comment and voted here where it is again an active topic ...
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 https://stackoverflow.com/questions/29133601/buildtypes-cannot-be-applied-to-groovy-lang-closure go to the settings within Android Studio and select "Use gradle wrapper": In Android Studio select: File\Settings\Build, Execution, Deployment\Build tools\Gradle Mark: Use default gradle wrapper (default) This removed all 'cannot be applied to '(groovy.lang.Closure') warnings in the build files.
2 https://stackoverflow.com/questions/29769988/dependencies-cannot-be-applied-to-groovy-lang-closure Open and edit file: yourproject/gradle/wrapper/gradle-wrapper.propertie. Edit content as below image then save. Delete this folder: yourproject/.gradle. Click Sync project with gradle files, then you are good to go.
3 https://github.com/DrKLO/Telegram/issues/870
My configuration is: Android Studio 1.3, compileSdk Version 22, buildTools Version "22.0.1"
Solution 17 - Android Studio
delete gradle folder under the app folder and resync project
Solution 18 - Android Studio
All I had to do to remove
productFlavors {
}
From
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
}
and the warning went away.
Final look was like this
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
Solution 19 - Android Studio
Changing the buildToolsVersion
from
android {
compileSdkVersion 24
buildToolsVersion "24.0.2"
..
}
to
android {
compileSdkVersion 24
buildToolsVersion "24.0.1"
..
}
worked for me.