2014-11-09 111 views
13

我正在开发Android项目,该项目使用Gradle,如下所述。找不到Gradle DSL方法:“classpath()”

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

但是,当我建立它,不断收到此错误:“摇篮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') 
} 

道歉,如果这个问题有点小白,我是Gradle和Android Studio的新手

回答

14

A classpath配置仅适用于buildscript依赖关系。您需要摆脱顶级dependencies区块中的classpath 'com.android.tools.build:gradle:0.12.+'行。 (摇篮插件需要buildscript { dependencies { ... } }下声明。)

4

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

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

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

将通过此脚本构建的android apk不需要二进制com.android.tools.build:gradle:0.12.+在您的Android设备上运行(即,apk在设备上运行时当然已经生成):没有理由声明它再次在顶级依赖项 (这些是您的应用程序所需的依赖项)

相关问题