找不到Gradle DSL方法:"classpath()"

vtl*_*loc 13 android build gradle android-studio

我正在开发一个Android项目,它使用Gradle,如下所述.

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.12.+'
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}

dependencies {
    classpath 'com.android.tools.build:gradle:0.12.+'
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':workspace:darkmoon:darul-android:vitamio:vitamio')
    compile project(':Dev:adt-bundle-mac-x86_64:sdk:extras:google:google_play_services:libproject:google-play-services_lib')
}

android {
    compileSdkVersion 19
    buildToolsVersion "20.0.0"

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        // Move the tests to tests/java, tests/res, etc...
        instrumentTest.setRoot('tests')

        // Move the build types to build-types/<type>
        // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
        // This moves them out of them default location under src/<type>/... which would
        // conflict with src/ being used by the main source set.
        // Adding new build types or product flavors should be accompanied
        // by a similar customization.
        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我构建它时,继续收到此错误:"找不到Gradle DSL方法",它指向以下行:

dependencies {
    classpath 'com.android.tools.build:gradle:0.12.+'
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':workspace:epsilonmobile:darul-android:vitamio:vitamio')
    compile project(':Dev:adt-bundle-mac-x86_64:sdk:extras:google:google_play_services:libproject:google-play-services_lib')
}
Run Code Online (Sandbox Code Playgroud)

如果这个问题有点像菜鸟,请道歉,我是Gradle和Android Studio的新手

Pet*_*ser 14

一个classpath配置仅适用于buildscript依赖.您需要摆脱classpath 'com.android.tools.build:gradle:0.12.+'顶级dependencies块中的行.(Gradle插件需要声明buildscript { dependencies { ... } }.)


ben*_*n75 5

在 gradle 脚本中,这buildscript是一个特殊的部分,您可以在其中声明构建脚本本身的依赖项(即构建过程所需的二进制文件)。

gradle 构建过程只不过是一个 java 过程,因此它支持正常的类路径依赖项。

com.android.tools.build:gradle:0.12.+确定构建过程所需的二进制文件(它包含能够理解/执行构建脚本的 android部分的代码)。

将由该脚本构建的 android apk 不需要com.android.tools.build:gradle:0.12.+在您的 android 设备上运行的二进制文件(即 apk 在设备上运行时当然已经构建了):没有理由在顶部再次声明它级别依赖项(那些是您的应用程序所需的依赖项)