2014-11-09 108 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在設備上運行時當然已經生成):沒有理由聲明它再次在頂級依賴項 (這些是您的應用程序所需的依賴項)

相關問題