T.Akashi
T.Akashi

Reputation: 1221

Gradle DSL method not found: 'compile()'

I had this gradle error.

Error:(9, 0) Gradle DSL method not found: 'compile()'

I have tried refering to similar questions but it did not work.

Android gradle build Error:(9, 0) Gradle DSL method not found: 'compile()'.

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

Unsupported Gradle DSL method found: 'compile()'!

My build.gradle code is here

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.0.0'
        compile 'com.android.support:appcompat-v7:20.+'
        compile 'com.google.android.gms:play-services:6.5.+'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

build.gradle(Module.app)

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.1"

    defaultConfig {
        applicationId "com.example.simplemaker.pushtest"
        minSdkVersion 9
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
}

What's wrong with my code?

Upvotes: 81

Views: 104654

Answers (9)

Taslim Oseni
Taslim Oseni

Reputation: 6263

In my case, I was getting this error because I had a dependency implementation line outside the dependencies block. Something like this:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    ...
  }

implementation 'androidx.media:media:1.1.0'

Note that all implementation calls must be defined within the dependencies block. That's the simple fix.

I hope this helps someone out there.

Merry coding!

Upvotes: -1

Wolf
Wolf

Reputation: 6499

Check your project. there is 2 build.gradle.

Move your compile line to another build.gradle

Upvotes: 2

Ege Kuzubasioglu
Ege Kuzubasioglu

Reputation: 6282

A simple mistake can cause this problem too, don't include classpath dependencies to build.gradle(Module:app)

Upvotes: 0

Tharanga
Tharanga

Reputation: 2767

Application dependencies must include in app -> build.gradle file. Not in Project -> build.gradle file.

Upvotes: 0

Alexeev Valeriy
Alexeev Valeriy

Reputation: 540

in addition to proper replies already given above - a picture for more detailed explanation:

enter image description here

Project has 2 build.gradle. You need the highlighted one: build.gradle (Module: app)

Upvotes: 7

Pratik Butani
Pratik Butani

Reputation: 62421

Its really silly problem and I got solution:

as compile statements goes in one line

compile "com.squareup.okhttp3:okhttp:$okHttpVersion"    compile "com.squareup.okhttp3:okhttp-urlconnection:$okHttpVersion"    compile "com.squareup.okhttp3:logging-interceptor:$okHttpVersion"    compile "com.google.code.gson:gson:$gsonVersion"

I just changed next by next line and solved my problem:

compile "com.squareup.okhttp3:okhttp:$okHttpVersion"
compile "com.squareup.okhttp3:okhttp-urlconnection:$okHttpVersion"
compile "com.squareup.okhttp3:logging-interceptor:$okHttpVersion"
compile "com.google.code.gson:gson:$gsonVersion"

Hope it will helps you. Thank you.

Upvotes: 31

Reza
Reza

Reputation: 4773

Check your build.gradle files, sometimes when you add a module to your current module using the project settings, the build.gradle of current module is corrupted, and indents are broken, just check current build.gradle and check if all the compile statements are issued in a new line!

Upvotes: 8

Bato-Bair Tsyrenov
Bato-Bair Tsyrenov

Reputation: 1194

I am using Android studio based on IntelliJ Idea and I have changed Settings on when and how to wrap code. Also I had 'reformat automatically' options which lead to formatting Gradle files randomly. So it lead to something like this:

    compile 'de.greenrobot:eventbus:2.4.0' compile 'com.jakewharton:butterknife:7.0.1'

Gradle then fails to find compile() for the second compile. As you only allowed to write one dependency per line.

Upvotes: 35

Simas
Simas

Reputation: 44118

As the note of your project's build.gradle file suggests:

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

Remove the 2 compile statements in that gradle file:

compile 'com.android.support:appcompat-v7:20.+'
compile 'com.google.android.gms:play-services:6.5.+'

And then make your other (module's) build.gradle dependencies look like this:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile 'com.google.android.gms:play-services:6.5.+'
}

Upvotes: 110

Related Questions