2014-11-09 2 views
13

아래에 언급 된 것처럼 Gradle을 사용하는 Android 프로젝트를 진행 중입니다.Gradle DSL method not found : "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') 
    } 
} 

하지만 그것을 빌드 할 때이 오류 메시지가 계속 나타납니다 : "을 (를) 찾을 수 없습니다 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') 
} 

사과 저는 Gradle 및 Android Studio를 처음 사용합니다.

답변

14

classpath 구성은 buildscript에만 사용할 수 있습니다. dependencies 블록의 classpath 'com.android.tools.build:gradle:0.12.+' 행을 제거해야합니다. (Gradle을 플러그인은 buildscript { dependencies { ... } }에서 선언해야합니다.)가 Gradle을 스크립트에서

4

buildscript는 빌드 스크립트 자체의 의존성 (빌드 프로세스에 필요한 즉 바이너리)를 선언 할 수있는 특별한 섹션입니다.

gradle 빌드 프로세스는 java 프로세스 이상으로 일반 클래스 경로 종속성을 지원합니다.

com.android.tools.build:gradle:0.12.+ 빌드 프로세스에서 필요한 이진 코드를 식별합니다. 빌드 스크립트의 android 섹션을 이해하고 실행할 수있는 코드가 포함되어 있습니다.

이 스크립트에 의해 빌드 될 android apk는 Android 디바이스에서 실행하기 위해 이진 com.android.tools.build:gradle:0.12.+을 필요로하지 않습니다 (즉, apk는 물론 디바이스에서 실행될 때 이미 빌드 됨) : 선언 할 이유가 없습니다. 다시 최상위 종속성 에 있습니다 (이들은 앱에서 요구하는 종속성입니다)