Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Getting Error "Gradle DSL method not found: 'compile()'" when Syncing Build.Gradle

Error after resolutionproject is staymax2 build.gradle files that i am working on To add V4 support libraries to android studio, i followed this document:https://developer.android.com/tools/support-library/setup.html#libs-without-res but I get an error. Here is what i did

  1. SDK manager> Installed Android Support Library and Android Repository.
  2. Go to Build.Gradle and added the line as given in the dcoument. Build.Gradle now looks like this:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
repositories {
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:0.13.2'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
}

allprojects {
repositories {
    jcenter()
    dependencies {

        compile "com.android.support:support-v4:18.0.+"
    }
}

}

Then, I get a popup that suggest that I sync gradle. When i sync Gradle, i get this error:

Error:(20, 0) Gradle DSL method not found: 'compile()' Possible causes:

  • The project 'staymax' may be using a version of Gradle that does not contain the method. Open Gradle wrapper file
  • The build file may be missing a Gradle plugin. Apply Gradle plugin
  • Am i missing any step? Please suggest.

    Build.Gradle(app)

    apply plugin: 'com.android.application'
    
    android {
    compileSdkVersion 20
    buildToolsVersion "20.0.0"
    
    defaultConfig {
        applicationId "com.appt.shreyabisht.staymax"
        minSdkVersion 15
        targetSdkVersion 20
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
     }
    }
    
    dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    }
    
    like image 776
    shrbisht Avatar asked Nov 26 '14 18:11

    shrbisht


    3 Answers

    In almost all cases, your dependencies should be put into the individual module's build.gradle files rather than at the top most level build.gradle file. In your case, that means the dependency should be added to the app module's build.gradle file:

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile "com.android.support:support-v4:18.0.+"
    }
    

    And you should remove the entire allprojects part of the top level build.gradle.

    like image 191
    ianhanniballake Avatar answered Oct 23 '22 16:10

    ianhanniballake


    I have found that when I add an applicationSuffix or versionNameSuffix through the IDE menu (Build > Edit Build Types), it changes the dependencies section of my app build.gradle from this:

    dependencies {
        compile fileTree(include: ['*.jar'], dir: 'libs')
        testCompile 'junit:junit:4.12'
        testCompile 'org.json:json:20140107'
    
        compile "com.android.support:appcompat-v7:${supportLibVersion}" 
        compile "com.android.support:design:${supportLibVersion}" 
        compile "com.android.support:support-vector-drawable:${supportLibVersion}" // VectorDrawableCompat
        compile "com.android.support:animated-vector-drawable:${supportLibVersion}" // AnimatedVectorDrawableCompat
    }
    

    to this:

    dependencies {
        compile fileTree(include: ['*.jar'], dir: 'libs')
        testCompile 'junit:junit:4.12'
        testCompile 'org.json:json:20140107'
        compile "com.android.support:appcompat-v7:${supportLibVersion}" compile "com.android.support:design:${supportLibVersion}" compile "com.android.support:support-vector-drawable:${supportLibVersion}"
        // VectorDrawableCompat
        compile "com.android.support:animated-vector-drawable:${supportLibVersion}"
        // AnimatedVectorDrawableCompat
    }
    

    I don't know why, but it combines the first three "compile" lines into one line, and moves the two comments (to the next line in each case).

    I solved the problem by editing the app build.gradle and putting each "compile" statement onto its own line.

    like image 12
    C. Todd Avatar answered Oct 23 '22 15:10

    C. Todd


    This worked for me:

    1. Exit Android Studio.
    2. Remove <home folder>/.gradle folder.
    3. Relaunch Android studio and let it load all gradle modules again.

    P.S.: Mine was a fresh project so I removed the project as well and created a new one, so there were no old gradle references from the project

    like image 2
    Ankur A Sharma Avatar answered Oct 23 '22 15:10

    Ankur A Sharma