android-studio required? - buildTypes cannot be applied to groovy.lang.Closure




project, added (17)

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?


Answers

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.

delete gradle folder under the app folder and resync project


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


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.


this worked for me:

buildTypes.debug {
    ext.enableCrashlytics = false
}

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

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.


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'
        }
    }
}

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.


Changing the buildToolsVersion from

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.2" 
.. 
}

to

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.1" 
.. 
}

worked for me.


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.


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.


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


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

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.


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.


I managed to solve my issue by simply doing this: Click "File" then select "Invalidate Caches/ Restart


In versions of Google Play services prior to 6.5, you had to compile the entire package of APIs into your app. In some cases, doing so made it more difficult to keep the number of methods in your app (including framework APIs, library methods, and your own code) under the 65,536 limit. From version 6.5, you can instead selectively compile Google Play service APIs into your app

inside compile com.google.android.gms:play-services:12.0.0 contains alot of dependencies.. see below.. using play-services may cause dex problem and heavy app. Select only which want do you really depends to :)

Google Play services API    Description in build.gradle

Google+                  com.google.android.gms:play-services-plus:12.0.0
Google Account Login     com.google.android.gms:play-services-auth:12.0.0
Google Actions, 
Base Client Library      com.google.android.gms:play-services-base:12.0.0
Google Address API       com.google.android.gms:play-services-identity:12.0.0
Google Analytics         com.google.android.gms:play-services-analytics:12.0.0
Google Awareness         com.google.android.gms:play-services-awareness:12.0.0
Google Cast              com.google.android.gms:play-services-cast:12.0.0
Google Cloud Messaging   com.google.android.gms:play-services-gcm:12.0.0
Google Drive             com.google.android.gms:play-services-drive:12.0.0
Google Fit               com.google.android.gms:play-services-fitness:12.0.0
Google Location and 
Activity Recognition     com.google.android.gms:play-services-location:12.0.0
Google Maps              com.google.android.gms:play-services-maps:12.0.0
Google Mobile Ads        com.google.android.gms:play-services-ads:12.0.0
Google Places            com.google.android.gms:play-services-places:12.0.0
Mobile Vision            com.google.android.gms:play-services-vision:12.0.0
Google Nearby            com.google.android.gms:play-services-nearby:12.0.0
Google Panorama Viewer   com.google.android.gms:play-services-panorama:12.0.0
Google Play Game         com.google.android.gms:play-services-games:12.0.0
SafetyNet                com.google.android.gms:play-services-safetynet:12.0.0
Android Pay              com.google.android.gms:play-services-wallet:12.0.0
Android Wear             com.google.android.gms:play-services-wearable:12.0.0

Firebase

Firebase API                Description in build.gradle

Analytics                com.google.firebase:firebase-core:12.0.0
Realtime Database        com.google.firebase:firebase-database:12.0.0    
Cloud Firestore          com.google.firebase:firebase-firestore:12.0.0   
Storage                  com.google.firebase:firebase-storage:12.0.0
Crash Reporting          com.google.firebase:firebase-crash:12.0.0  
Authentication           com.google.firebase:firebase-auth:12.0.0    
Cloud Messaging          com.google.firebase:firebase-messaging:12.0.0 
Remote Config            com.google.firebase:firebase-config:12.0.0  
Invites and 
Dynamic Links            com.google.firebase:firebase-invites:12.0.0 
AdMob                    com.google.firebase:firebase-ads:12.0.0 
App Indexing             com.google.firebase:firebase-appindexing:12.0.0 
Performance Monitoring   com.google.firebase:firebase-perf:12.0.0   

EDIT Above version is already deprecated. Please refer Link Below

Google Play Service - https://developers.google.com/android/guides/setup
Firebase - https://firebase.google.com/docs/android/setup





android-studio android-gradle