2014-11-09 13 views
13

मैं एक एंड्रॉइड प्रोजेक्ट पर काम कर रहा हूं, जो नीचे वर्णित ग्रैडल का उपयोग करता है।ग्रैडल डीएसएल विधि नहीं मिली: "क्लासपाथ()"

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 डीएसएल विधि नहीं मिला", और यह लाइन निम्नलिखित की ओर इशारा किया:

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

यदि आपको इस इस सवाल का एक सा noob है , मैं ग्रैडल और एंड्रॉइड स्टूडियो

उत्तर

14

classpath कॉन्फ़िगरेशन केवल buildscript निर्भरताओं के लिए उपलब्ध है। आपको शीर्ष-स्तर dependencies ब्लॉक में classpath 'com.android.tools.build:gradle:0.12.+' लाइन से छुटकारा पाने की आवश्यकता है। (Gradle प्लगइन्स buildscript { dependencies { ... } } के तहत घोषित किया जाना चाहिए।)

4

एक Gradle स्क्रिप्ट में, buildscript एक विशेष अनुभाग जहां निर्माण स्क्रिप्ट ही की निर्भरता (अर्थात बाइनरी निर्माण प्रक्रिया के लिए आवश्यक) की घोषणा कर सकते हैं।

ग्रेडल बिल्ड प्रक्रिया जावा प्रक्रिया से अधिक कुछ नहीं है और इसलिए यह सामान्य क्लासपाथ निर्भरताओं का समर्थन करता है।

com.android.tools.build:gradle:0.12.+ एक द्विआधारी निर्माण प्रक्रिया के लिए आवश्यक की पहचान (यह कोड को समझने के लिए/निर्माण स्क्रिप्ट के एंड्रॉयड अनुभाग अमल में सक्षम होता है)।

एंड्रॉइड एपीके जिसे इस स्क्रिप्ट द्वारा बनाया जाएगा, को आपके एंड्रॉइड डिवाइस पर चलाने के लिए द्विआधारी com.android.tools.build:gradle:0.12.+ की आवश्यकता नहीं है (यानी एपीके निश्चित रूप से डिवाइस पर चलने पर पहले ही बना है): घोषित करने का कोई कारण नहीं है यह फिर से शीर्ष स्तर निर्भरताओं में (वे आपके ऐप द्वारा आवश्यक निर्भरताएं हैं)

संबंधित मुद्दे