2014-11-09 19 views
13

Pracuję nad projektem Android, który używał Gradle, jak wspomniano poniżej.Nie znaleziono metody 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') 
    } 
} 

Ale kiedy go zbudować, utrzymać ten błąd: „metoda DSL Gradle nie znaleziono”, i wskazał na następujących linii:

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

przeprosić jeśli kwestia ta jest nieco noobem Jestem nowy zarówno dla Gradle, jak i Android Studio

Odpowiedz

14

Konfiguracja jest dostępna tylko dla zależności buildscript. Musisz pozbyć się linii classpath 'com.android.tools.build:gradle:0.12.+' w najwyższym poziomie bloku dependencies. (Plugins Gradle muszą być zadeklarowane pod buildscript { dependencies { ... } }.)

4

W Gradle skrypcie buildscript jest specjalnym sekcja gdzie można zadeklarować zależności skryptu build samego (tj binarnych wymaganych w procesie kompilacji).

Proces tworzenia gradle jest niczym więcej niż procesem java i dlatego obsługuje normalne zależności od classpath.

com.android.tools.build:gradle:0.12.+ zidentyfikować binarny wymaganego przez proces kompilacji (zawiera kod w stanie zrozumieć/wykonać android sekcję skryptu build).

Android apk, który będzie zbudowany przez ten skrypt, nie potrzebuje binarnego com.android.tools.build:gradle:0.12.+ do uruchamiania na twoim urządzeniu z Androidem (tj. Apk jest oczywiście już zbudowany, gdy działa na urządzeniu): nie ma powodu, aby zadeklarować to znowu w zależnościach najwyższego poziomu (są to zależności wymagane przez twoją aplikację)

Powiązane problemy