gradlew: अनुमति अस्वीकृत


286

मैं अपनी कमांड लाइन से gradlew चलाने का प्रयास कर रहा हूं, लेकिन लगातार निम्न त्रुटि का सामना कर रहा हूं।

Brendas-MacBook-Pro:appx_android brendalogy$ ./gradlew compileDebug --stacktrace
-bash: ./gradlew: Permission denied

मैं अपने प्रोजेक्ट डायरेक्टरी से पहले से ही यह कमांड चला रहा हूं। इस कमांड को चलाने की आवश्यकता है क्योंकि मैं एंड्रॉइड स्टूडियो 0.2.x पर समान (नॉन्डेसस्क्रिप्टिव) त्रुटि का सामना कर रहा हूं जैसा कि यहां सामना किया गया है: एंड्रॉइड स्टूडियो और ग्रेडल बिल्ड एरर

क्या मैं कुछ गलत कर रहा हूं और मैं इसके आसपास कैसे पहुंचूं?

जवाबों:


818

अपनी gradlew फ़ाइल पर निष्पादन ध्वज सेट करने का प्रयास करें:

chmod +x gradlew


4
आप मतलब है, chmod + x gradlew? (: यह काम किया। कृपया अपने उत्तर को संपादित करें ताकि मैं इसे स्वीकृत के रूप में चिह्नित कर सकूं। धन्यवाद!
ब्रेंडा निकोल टैन

28
क्या कोई कारण है कि डिफ़ॉल्ट टेम्पलेट पहले से ही निष्पादन योग्य के रूप में वर्गीकृत नहीं होता है? यह अजीब लगता है कि मुझे यह करना होगा।
अंकुर

3
एटलसियन बांस के निर्माण की स्थापना के समय मेरे पास समान मुद्दा था; git से gradlew फ़ाइल की जाँच करना, इसमें निष्पादन योग्य विशेषता नहीं थी, इसलिए @Vincent के रूप में chmod + x को मेरी नौकरी में "स्क्रिप्ट" कार्य जोड़ना पड़ा। धन्यवाद!
डग एयर्स

@Vincent क्या आप इस बात की विस्तृत जानकारी दे सकते हैं कि अनुमति के मुद्दे को हल करने के लिए यह क्यों आवश्यक है?
अभिजीत

4
@ अभिजित आप कर के फाइल की अनुमति की जांच कर सकते हैं ls -l। यह आपको बाएं-सबसे कॉलम पर फ़ाइल की अनुमति देता है।
सुधांशु

58

के साथ भी तय किया जा सकता था

git update-index --chmod=+x gradlew

1
ठीक वही जो मेरे द्वारा खोजा जा रहा था!
sschrass

1
विंडोज़ उपयोगकर्ताओं के लिए उचित फिक्स। धन्यवाद!
GBP

5
... और इसके बाद
कमिटमेंट

33

आप कमांड से पहले "बैश" का उपयोग कर सकते हैं:

bash ./gradlew compileDebug --stacktrace

27

इसके लिए आपको निष्पादन अनुमति को अपडेट करना होगा gradlew

स्थानीय रूप से :chmod +x gradlew

Git :

git update-index --chmod=+x gradlew
git add .
git commit -m "Changing permission of gradlew"
git push

तुम्हे देखना चाहिए:

mode change 100644 => 100755 gradlew

धन्यवाद, मेरी बहुत मदद की!
इगोर फ्रिडमैन

26

जेनकिंस> प्रोजेक्ट डैशबोर्ड> (सिलेक्ट प्रॉजेक्ट प्रोजेक्ट) कॉन्फ़िगर करें> बिल्ड करें

एक्स ग्रेड ग्रैपर का उपयोग करें

Gradlew निष्पादन योग्य x बनाएं

यहां छवि विवरण दर्ज करें


क्या यह आपके लिए काम करता है? मैंने अपनी नौकरी की सेटिंग में चेकबॉक्स सेट किया लेकिन यह ग्रेडलेव को निष्पादन योग्य बनाने के लिए नेतृत्व नहीं करता था। मैं clean before checkoutविकल्प का उपयोग करता हूं ।
जुबैक्टिक

1
मेरे लिये कार्य करता है! आपको निष्पादन योग्य बनाने के लिए स्पष्ट रूप से जेनकींस को बताना होगा।
हार्वे लिन

16

git update-index --chmod = + x gradlew

यह आदेश विशेष रूप से गैर-यूनिक्स प्रणाली पर बेहतर काम करता है।


2

बस इसे एंड्रॉइड स्टूडियो टर्मिनल (या अपने लिनक्स / मैक टर्मिनल) commandमें टाइप करें

chmod +x gradlew

और इसके लिए प्रयास करें:

 ./gradlew assembleDebug

यहां छवि विवरण दर्ज करें


1

अगर यह chmod'ing के बाद काम नहीं करता है, तो सुनिश्चित करें कि आप इसे / tmp निर्देशिका के अंदर निष्पादित करने का प्रयास नहीं कर रहे हैं।


1

मेरे मामले में, मैंने अनुमति निष्पादित कर दी थी और मैं सुडोल के साथ भी ग्रेडलेव नहीं चला सकता था। मेरी समस्या मेरी परियोजना एक और हार्ड ड्राइव में थी और मैंने उस ड्राइव पर अनुमति नहीं दी थी। मैं बस fstab से noexec माउंट झंडा हटा दिया और निष्पादन झंडा जोड़ा। फिर डिस्क को रिमूव करें ताकि परिवर्तन लागू हों।



0

मैं एक ही त्रुटि पर एक फड़फड़ा चलाने की कोशिश कर रहा मिल MAC। जाहिरा तौर पर, आपके स्पंदन परियोजना में, एक फ़ाइल एंड्रॉइड / ग्रेडलेव है जिसे निष्पादन योग्य होने की उम्मीद है (और यह नहीं था)। तो मेरे मामले में,

chmod a+rx android/gradlew

मैंने इस कमांड का इस्तेमाल किया और प्रोजेक्ट को अंजाम दिया


0

यह त्रुटि संबंधित अनुमति है। बस अपने टर्मिनल में लाइन के नीचे पेस्ट करें और चलाएं ...

chmod a + rx android / gradlew


0

Android फोल्डर cmd रन पर

chmod +x gradlew

और भाग खड़ा हुआ

./gradlew clean

और रूट प्रोजेक्ट रन

react-native run-android
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.