2015-06-15 5 views
7

मैं Centos 7 टर्मिनल में Gradle निर्माण आदेश इस्तेमाल किया नहीं बना सका और मैं उत्पादन मिल गया:Gradle BuildScopeServices.createInitScriptHandler का उपयोग कर प्रकार InitScriptHandler सेवा()

विफलता: निर्माण एक अपवाद के साथ विफल रहा है।

  • क्या गलत हो गया: BuildScopeServices.createInitScriptHandler का उपयोग कर प्रकार InitScriptHandler की सेवा नहीं बना सका()।

  • कोशिश करें: स्टैक ट्रेस प्राप्त करने के लिए - स्टैकट्रैक विकल्प के साथ चलाएं। अधिक लॉग आउटपुट प्राप्त करने के लिए --info या --debug विकल्प के साथ चलाएं।

+1

आप कमांड चलाने के लिए उपयुक्त विशेषाधिकार है? – Opal

+0

मुझे लगता है कि आप सही हैं, समस्या विशेषाधिकारों के साथ है, क्योंकि रूट उपयोगकर्ता क्रम में सही तरीके से काम करता है, मैं कमांड chmod -R 777 ./gradle-2.4 का उपयोग कर फ़ोल्डर को क्रमबद्ध करने के लिए 777 अनुमतियों को सेट करने का प्रयास करता हूं, लेकिन त्रुटि अभी भी होती है। ग्रैडल फ़ोल्डर I उपयोगकर्ता होम निर्देशिका में अनजिप किया गया जिसके साथ मुझे ऊपर वर्णित त्रुटि मिलती है। –

+0

मैंने टाइप किए गए आदेश के सामने 'सूडो' प्लानिंग इसे ठीक कर दिया। इस संबंध में त्रुटि संदेश थोड़ा और सहायक हो सकता है। – ben3000

उत्तर

12

अपने GRADLE_USER_HOME चर को उस फ़ोल्डर में सेट करने का प्रयास करें जहां आपके पास वैध पहुंच है। तब यह त्रुटि चली जाएगी।

पूर्व के लिए: मुझे एक ही समस्या का सामना करना पड़ा, जबकि मैं एक नई दास मशीन पर "gradle clean" कमांड चला रहा था।

मेरा ग्रैडल संस्करण 2.3 था।

- स्टैकट्रैस के साथ, मुझे पता चला कि यह ग्रैडल के कैश डेटा को संग्रहीत करने के लिए ".gradle" फ़ोल्डर बनाने की कोशिश कर रहा था (जबकि मैंने दास पर साफ कार्य चलाने के लिए ग्रैडल लगाया था) और यह उस फ़ोल्डर को बनाने की कोशिश कर रहा था /कुछ/स्थान/जहां/gradle/मौजूद है या कुछ/पथ/स्थान/xxx/yyy जहां उपयोगकर्ता जो दास मशीन पर ग्रैडल चला रहा था उसे लिखने के लिए वैध पहुंच नहीं थी (फ़ोल्डर/फाइलें बनाएं)।

यानी उपयोगकर्ता जो मैं जेनकिंस मशीन से दास से कनेक्ट करने के लिए उपयोग करता था, उसमें डिफ़ॉल्ट स्थान में कुछ भी स्पर्श/एमकेडीआईआर तक पहुंच पहुंच नहीं थी (जहां ग्रैडल सोचा था, ठीक है, मुझे यहां .gradle फ़ोल्डर बनाना चाहिए)।

इसे ठीक करने के लिए, मैंने दास के पर्यावरण परिवर्तनीय अनुभाग में उपरोक्त GRADLE_USER_HOME चर जोड़ा। अब, क्योंकि मेरे पास मेरी होम निर्देशिका में वैध पहुंच है, मैं ठीक था।

स्थापना:

GRADLE_USER_HOME=~/gradle_2_3_cache/.gradle 

समस्या हल हो गई।

आप इसे ~/.gradle पर भी सेट कर सकते हैं। लेकिन मैंने इसे अपने ~ होम निर्देशिका (gradle_2_3_cache) के अंदर एक कस्टम फ़ोल्डर के तहत सेट किया है। यह मेरी मदद करेगा यदि मेरे पास एक ही दास एक ही स्लेव मशीन पर चल रहा है लेकिन पूर्व 2.5 आदि संस्करण के लिए अलग-अलग ग्रैडल संस्करण के साथ और यदि मैं अलग फ़ोल्डरों में 2.3 और 2.5/x संस्करण के लिए .gradle कैश चाहता हूं।

+0

क्या आप इसे अधिक जानकारी में समझा सकते हैं। क्योंकि मुझे भी इस मुद्दे का सामना करना पड़ रहा है। और मैं एंड्रॉइड में एक नया मधुमक्खी हूँ। –

2

मुझे एक ही समस्या थी। मेरे लिए यह .grandle फ़ोल्डर को बाहर करने के बाद काम करता है यदि आप नाम बदलने का प्रयास नहीं कर सकते हैं।

0

भविष्य के संदर्भ के लिए। मैं एक ही समस्या थी, मुद्दा यह है कि एंटीवायरस, अवरुद्ध किया गया OpenJDK मंच द्विआधारी और java.exe जो फ़ाइलों

1

मेरे लिए संशोधित करने में सक्षम किया जा रहा से एंड्रॉयड स्टूडियो रोका Gradle डेमॉन वास्तव में मदद की मौत हो गई थी और इस मुद्दे को ठीक किया।

+0

वही है, मेरी डिस्क पूरी थी लेकिन अधिक कमरे बनाने के बाद भी यह काम नहीं करेगा क्योंकि ग्रैडल डिमन को किसी कारण से खबर नहीं मिली। – wkarl

0

यदि आप रैपर gradlew का उपयोग करते हैं, रूट में निर्देशिका बनाते हैं।gradle_new

mkdir .gradle_new 
chmod -R 777 .gradle_new 

और तर्क के साथ gradlew चलाएँ:

--project-cache-dir .gradle_new 
संबंधित मुद्दे