找不到Gradle DSL方法:'compile()'

时间:2014-12-23 09:39:32

标签: android

我有这个gradle错误。

  

错误:(9,0)未找到Gradle DSL方法:' compile()'

我尝试过引用类似的问题,但它没有用。

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()'!

我的build.gradle代码在这里

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

我的代码出了什么问题?

抱歉我的英文。

非常感谢!

9 个答案:

答案 0 :(得分:111)

正如您项目的build.gradle文件提示:

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

删除该gradle文件中的2个编译语句:

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

然后让你的其他(模块的)build.gradle依赖项看起来像这样:

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

答案 1 :(得分:35)

我正在使用基于IntelliJ Idea的Android工作室,我已经更改了设置何时以及如何包装代码。我也自动重新格式化了#39;导致随机格式化Gradle文件的选项。所以它导致了这样的事情:

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

Gradle然后找不到第二次编译的compile()。因为你只允许每行写一个依赖项。

答案 2 :(得分:30)

这是一个非常愚蠢的问题,我得到了解决方案:

因为编译语句在一行中

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"

我刚接下一行改变并解决了我的问题:

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"

希望它会对你有所帮助。谢谢。

答案 3 :(得分:7)

检查 build.gradle 文件,有时当您使用项目设置将模块添加到当前模块时,当前模块的 build.gradle 已损坏,并且缩进被破坏,只需检查当前的 build.gradle 并检查是否所有的编译语句都是以新行发布的!

答案 4 :(得分:5)

除了上面给出的正确回复之外,还有一张图片 - 更详细的说明:

enter image description here

Project有2个build.gradle。您需要突出显示的一个: build.gradle(模块:app)

答案 5 :(得分:2)

检查您的项目。 有2个build.gradle。

Move your compile line to another build.gradle

答案 6 :(得分:0)

应用程序依赖项必须包含在 app - >中build.gradle 文件。不在项目中 - > build.gradle文件。

答案 7 :(得分:0)

一个简单的错误也可能导致此问题,不包括classpath build.gradle(Module:app)

UnorderedObjectListWarning依赖项

答案 8 :(得分:0)

就我而言,出现此错误是因为我在dependencies块之外有一个依赖项实现行。像这样:

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

implementation 'androidx.media:media:1.1.0'

请注意,所有实现调用都必须在依赖关系块中定义。这是简单的解决方法。

我希望这可以帮助某个人。

快乐的编码!