buildTypes cannot be applied to groovy.lang.Closure

Android StudioAndroid Gradle-Plugin

Android 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

  1. Change the project to Project perspective in the "Project Explorer".
  2. Delete .gradle and build folders.
  3. Click File -> Invalidate Caches / Restart... -> Invalidate and Restart
  4. 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...

  1. Navigate in Android Studio to:

    File | Settings | Build, Execution, Deployment | Build Tools | Gradle

  2. Ensure that this is unchecked, despite that it is recommended to keep ...

    Use Default Gradle Wrapper (recommended)

  3. and that this one is checked ...

    Use local gradle distribution

  4. 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 ...

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJim VitekView Question on Stackoverflow
Solution 1 - Android StudioPeterView Answer on Stackoverflow
Solution 2 - Android StudiodorrView Answer on Stackoverflow
Solution 3 - Android StudioLuca BarillàView Answer on Stackoverflow
Solution 4 - Android StudioIvan VView Answer on Stackoverflow
Solution 5 - Android StudioAtif FarrukhView Answer on Stackoverflow
Solution 6 - Android StudioFredView Answer on Stackoverflow
Solution 7 - Android StudioAleFranzView Answer on Stackoverflow
Solution 8 - Android StudiosergglView Answer on Stackoverflow
Solution 9 - Android StudioChiskoView Answer on Stackoverflow
Solution 10 - Android StudioanthonymonoriView Answer on Stackoverflow
Solution 11 - Android Studiogreywolf82View Answer on Stackoverflow
Solution 12 - Android Studiouser5275943View Answer on Stackoverflow
Solution 13 - Android StudioTash PemhiwaView Answer on Stackoverflow
Solution 14 - Android StudiokenguraView Answer on Stackoverflow
Solution 15 - Android StudioIronBlossomView Answer on Stackoverflow
Solution 16 - Android StudioMickView Answer on Stackoverflow
Solution 17 - Android StudioAlex PerevozchykovView Answer on Stackoverflow
Solution 18 - Android StudioMaxView Answer on Stackoverflow
Solution 19 - Android StudioGergana TsvetkovaView Answer on Stackoverflow