2016-05-09 17 views
13

मैं निम्नलिखित निर्माण अपवाद मिलती रहती है जब मैंपरिवर्तन Cordova निर्माण gradle-wrapper.properties में distributionUrl फ़ाइल

cordova run android --verbose 
  • क्या गलत हो गया था चलाएँ: एक समस्या जड़ परियोजना 'एंड्रॉयड' का मूल्यांकन हो गई।

    प्लगइन लागू करने में विफल [आईडी 'एंड्रॉइड'] ग्रेडल संस्करण 2.10 आवश्यक है। वर्तमान संस्करण 2.2.1 है। Gradle आवरण का उपयोग कर रहे हैं, तो सी में distributionUrl संपादन करने की कोशिश: \ Users \ परियोजना \ Gradle \ आवरण \ gradle-wrapper.properties gradle-2.10-all.zip को

इस का कारण यह है जब मैं कॉर्डोवा बिल्ड कमांड चलाता हूं तो रेखा बदल दी जाती है;

distributionUrl=http\://services.gradle.org/distributions/gradle-2.1.0-all.zip 

distributionUrl=http\://services.gradle.org/distributions/gradle-2.2.1-all.zip 

इसे रोकने के लिए किसी भी तरह से करने के लिए

?

उत्तर

46

जैसा कि अनुमान लगाया जा सकता है, एक ऐसी स्क्रिप्ट है जो चल रही है जब आप "कॉर्डोवा बिल्ड एंड्रॉइड" कमांड जारी करते हैं तो दृश्य। ग्रैडल संस्करण के लिए निर्दिष्ट कॉन्फ़िगरेशन देखने के लिए इस स्क्रिप्ट को पाया जाना चाहिए।

आप जा सकते हैं और निम्नलिखित js फ़ाइल की जाँच करना चाहिए:

$PROJECT_ROOT/platforms/android/cordova/lib/builders/GradleBuilder.js

फिर फ़ाइल में निम्न चर सहित लाइन पाते हैं:

GradleBuilder.prototype.prepEnv 

और distributionUrl चर की जाँच करें:

var distributionUrl = process.env['CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL'] || 'http\\://services.gradle.org/distributions/gradle-2.2.1-all.zip'; 

यही वह है जो आप देख रहे हैं के लिए और आपको gradle-2.10-all.zip URL में बदलने की क्या आवश्यकता है;

अब आप बिल्ड कमांड चला सकते हैं, और वहां आप जा सकते हैं!

निम्नलिखित SO से प्रेरित; install gradle for using in cordova build android

+0

एंड्रॉइड के लिए प्रोजेक्ट को पुन: प्रयास करना एक ही स्थिति में समाप्त होगा लेकिन यह है अभी के लिए एक अच्छा समाधान .. मैंने गिटहब पर GradleBuilder.js फ़ाइल के लिए मास्टर शाखा की जांच की है और यह धीरे-धीरे बदल गया है .13-all.zip। अगली कॉर्डोवा रिलीज शायद इसे ठीक कर देगा। –

+0

धन्यवाद, shamaleyte! अब मैं केवल पिछले कई दिनों से बालों के झुंड को बहाल करने के लिए एक जगह खोजने की जरूरत है। – brianfit

+0

@brianfit, हमें सभी जानते हैं कि क्या आपको बालों के झुंड को बहाल करने का समाधान मिल रहा है :)) – shamaleyte

1

आप

वरना उपयोग डिफ़ॉल्ट Gradle आवरण मुद्दा,

विंडोज़ पर समाधान के लिए निम्न की कोशिश कर सकते, बदले File -> Settings -> Builds,Execution,Deployment -> Build Tools -> Gradle -> Gradle home पथ

मैक ओएस पर, बदले Android Studio -> Preferences -> Builds,Execution,Deployment -> Build Tools -> Gradle -> Gradle home पथ और इस तरह Project\gradle\wrapper\gradle-wrapper.properties file's distributionUrl संपादित :

distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip 
+3

समस्या वास्तव में है कि मैं अपने "और" समाधान के साथ यह संभव बनाने के लिए सक्षम नहीं हूँ बदलने के लिए। "डिफ़ॉल्ट ग्रेडल रैपर का उपयोग करें (अनुशंसित" विकल्प चुना गया है। और जब मैं कॉर्डोवा कमांड चलाता हूं, तो परिवर्तित वितरण यूआरएल को अपने पूर्व संस्करण में वापस कर दिया जाता है। इसलिए उदास। – shamaleyte

12

मुझे लगता है कि चर निर्यात करने के लिए बेहतर है CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL

उदाहरण:

export 
CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL=http\\://services.gradle.org/distributions/gradle-2.14.1-all.zip 

आप Mac का उपयोग कर रहे हैं, उदाहरण के लिए, निर्यात आदेश में .bash_profile

nano ~/.bash_profile 
में जोड़ें
6

अद्यतन: 21 मई 2017

ठीक है, यह वास्तव में एक बुरा मुद्दा था और मुझे उम्मीद में ठीक करने के लिए पूर्ण निर्देश लिखने के लिए मजबूर होना पड़ा कि यह दूसरों को बर्बाद कर देता है। निम्नलिखित googling का संयोजन है, स्वीकृत उत्तर पढ़ रहा है, और परीक्षण और त्रुटि से काम कर रहे चीजें हैं।

इससे पहले कि आप कुछ और करें .. सुनिश्चित करें कि आप डॉकर बंद कर रहे हैं तो बंद करें। एक लक्षण यह है कि एंड्रॉइड स्टूडियो में, एमुलेटर लोड संवाद बस चुपचाप गायब हो जाता है। यदि आप ऐप स्टार्ट कमांड से भाग गए हैं, तो आपका एप्लिकेशन बस डिवाइस से कनेक्ट करने के लिए प्रतीक्षा कर रहा है (संदेश जारी)।

मान लीजिए कि आपने ऐसा किया है और अभी भी काम नहीं कर रहा है, पढ़ें।

वैकल्पिक (शायद): केवल fyi - व्यक्तिगत रूप से, मैंने SDK Man का उपयोग अपनी मशीन पर ग्रैडल के मिलान संस्करण को स्थापित करने के लिए किया था।

मान लें कि आपको पहले से ही मार्शमलो या नौगेट (या दोनों) के साथ एक एंड्रॉइड स्टूडियो एमुलेटर मिल रहा है।

मेरे मामले में, मैं फिर कॉर्डोवा को काम करने की कोशिश कर रहा था।

कि क्या आप प्रारंभ करना चाहते पर निर्भर करता है

(अनुशंसित) तो:

cordova platform rm android 
cordova platform add android 

पहले एक डाउनलोड की जरूरत है। अपने OS के अनुसार निम्नलिखित डाउनलोड:

https://dl.google.com/android/repository/tools_r25.2.3-windows.zip

https://dl.google.com/android/repository/tools_r25.2.5-linux.zip

(मैं मैक पर चल रहा था, तो डाउनलोड किया :)

https://dl.google.com/android/repository/tools_r25.2.5-macosx.zip

इसे अनज़िप, और templates फ़ोल्डर की प्रतिलिपि /Users/arcseldon/Library/Android/sdk/tools

स्पष्टीकरण:module.exports.check_gradle फ़ंक्शन के अंदर तर्क को देखें, platforms/android/cordova/check_reqs.js के तहत घोषित किया गया है कि यह समझने के लिए कि यह कैसे ग्रेडल रैपर के लिए पथ प्राप्त करने का प्रयास कर रहा है। यह सह-इसे मिटा देता है।

$ echo $ANDROID_HOME 
/Users/arcseldon/Library/Android/sdk 

मैं एक tools उपनिर्देशिका, लेकिन वह अंदर नहीं templates फ़ोल्डर देख सकता था। तो डाउनलोड और निकाली गई जिप से templates फ़ोल्डर की प्रतिलिपि, और अंदर $ANDROID_HOME/tools

पेस्ट करें आप एक पथ पदानुक्रम है जिसमें शामिल हैं के साथ खत्म करना चाहिए:

/Users/arcseldon/Library/Android/sdk/tools/templates/gradle/wrapper 

यह अब स्क्रिप्ट के नजरिए से पथ खोज संतुष्ट करता है।

दूसरा, प्लेटफ़ॉर्म/एंड्रॉइड/build.gradle के लिए अपने कॉर्डोवा एप्लिकेशन की जांच करें, और gradleVersion के लिए खोजें।

task wrapper(type: Wrapper) { gradleVersion = '2.14.1' }

अपने संस्करण के लिए, URL से डाउनलोड के इस प्रकार है:

https://services.gradle.org/distributions/gradle-X.Y.Z-all.zip

की जगह पहला, दूसरा, जेड के रूप में अपने संस्करण से मेल करने के लिए की जरूरत है।

मेरे मामले में,

https://services.gradle.org/distributions/gradle-2.14.1-all.zip

अन्य उदाहरण:

https://services.gradle.org/distributions/gradle-3.3-all.zip https://services.gradle.org/distributions/gradle-2.4-all.zip

फिर, एक बार डाउनलोड, अपने स्थानीय ड्राइव और ENV साथ संदर्भ पर जगह। चर। जैसे। (अपने संस्करण का उपयोग करने)

export CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL=file:///Users/myusername/temp/gradle-2.14.1-all.zip 

स्पष्टीकरण: एक खोज आप इस वातावरण चर मिल जाएगा इस env के लिए एक वैकल्पिक ओवरराइड है, तो आप चलाते हैं। चर। बस चलाने अब check_gradle के लिए चर काम, platforms/android/cordova/lib/builders/GradleBuilder.js

के तहत घोषित देखें:

cordova run android --verbose 

सभी अच्छी तरह से जा रहा है, सब कुछ अब Android के लिए "बस काम" चाहिए। मेरे मामले में, आईओएस बॉक्स से बाहर था - लेकिन मैंने अन्य कारणों से एक्सकोड 8.3 के बजाय एक्सकोड 8.2 का उपयोग किया था।

+0

आपके लिए धन्यवाद व्याख्या, समझने में काफी मददगार और चीजें चल रही हैं ... मेरे मामले में 'प्लेटफ़ॉर्म/एंड्रॉइड/कॉर्डोवा/check_reqs.js' 'प्लेटफ़ॉर्म/एंड्रॉइड/कॉर्डोवा/lib/check_reqs.js' में स्थित है (विंडोज़)। –

+0

@PediT। फीडबैक के लिए धन्यवाद, आपको प्रगति करने के लिए खुशी हुई। – arcseldon

0

सिर्फ फ़ाइल परियोजना/प्लेटफार्मों/एंड्रॉयड/build.gradle खोलने के लिए और

निर्भरता {
            classpath 'com.android.tools.build:gradle:XXX'
अद्यतन की कोशिश करो }

और

कार्य आवरण (के प्रकार: आवरण) {
                gradleVersion = 'X.एक्स '
}

संदर्भ यहाँ https://developer.android.com/studio/releases/gradle-plugin.html#updating-gradle

देख X.X

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