gradlew: การอนุญาตถูกปฏิเสธ


287

ฉันพยายามเรียกใช้ gradlew จากบรรทัดคำสั่งของฉัน แต่ฉันเผชิญกับข้อผิดพลาดต่อไปนี้

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

ฉันกำลังเรียกใช้คำสั่งนี้จากไดเรกทอรีโครงการของฉัน จำเป็นต้องเรียกใช้คำสั่งนี้เนื่องจากฉันกำลังเผชิญกับข้อผิดพลาด (ไม่อธิบาย) บน Android Studio 0.2.x ดังที่พบที่นี่: Android studio และข้อผิดพลาดในการสร้าง gradle

ฉันกำลังทำอะไรผิดและฉันจะทำสิ่งนี้ได้อย่างไร

คำตอบ:


818

พยายามตั้งค่าสถานะการดำเนินการในไฟล์ gradlew ของคุณ:

chmod +x gradlew


4
คุณหมายถึง chmod + x gradlew? (: ใช้งานได้โปรดแก้ไขคำตอบของคุณเพื่อให้ฉันสามารถทำเครื่องหมายว่าเป็นคำตอบที่ยอมรับได้ขอบคุณ!
Brenda Nicole Tan

28
มีเหตุผลบางอย่างที่แม่แบบเริ่มต้นไม่ได้ตั้งค่า gradlew เป็นปฏิบัติการ? ดูเหมือนว่าแปลกที่ฉันจะต้องทำเช่นนี้
Ankur

3
ฉันมีปัญหาคล้ายกันเมื่อตั้งค่า Atlassian Bamboo build; การตรวจสอบไฟล์ gradlew จาก git มันไม่ได้มีคุณสมบัติที่ปฏิบัติการได้ดังนั้นจึงต้องเพิ่มงาน "สคริปต์" ไปยังงานของฉันเพื่อ chmod + x เป็น @Vincent ชี้ให้เห็น ขอบคุณ!
Doug Ayers

@Vincent คุณช่วยอธิบายรายละเอียดเกี่ยวกับสาเหตุที่ต้องแก้ไขปัญหาการอนุญาตได้อย่างไร
Abhijit

4
@Abhijit ls -lคุณสามารถตรวจสอบสิทธิ์ของแฟ้มโดยการทำ นี่จะให้สิทธิ์การใช้ไฟล์ที่คอลัมน์ซ้ายสุด
Sudhanshu

59

สามารถแก้ไขได้ด้วย

git update-index --chmod=+x gradlew

1
สิ่งที่ฉันกำลังมองหา!
sschrass

1
การแก้ไขที่เหมาะสมสำหรับผู้ใช้ windows ขอบคุณ!
GBP

5
... และส่งมอบและผลักดันหลังจากนั้นมีความจำเป็น
มิคาลโฮซาลา


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

ขอบคุณช่วยฉันมาก!
Igor Fridman

26

Jenkins> Project Dashboard> (เลือกโครงการที่แบ่งส่วนข้อมูล) กำหนดค่า> สร้าง

xใช้ Gradle Wrapper

ทำให้ x ดำเนินการ gradlew

ป้อนคำอธิบายรูปภาพที่นี่


มันใช้งานได้สำหรับคุณหรือไม่ ฉันตั้งค่าช่องทำเครื่องหมายในการตั้งค่างานของฉัน แต่มันไม่ได้นำไปสู่การปฏิบัติที่ไล่ระดับได้ ฉันใช้clean before checkoutตัวเลือก
zubactik

1
ใช้งานได้สำหรับฉัน! คุณต้องบอกเจนกินส์อย่างชัดเจนเพื่อให้ปฏิบัติการได้
Harvey Lin

16

git update-index --chmod = + x gradlew

คำสั่งนี้ทำงานได้ดีขึ้นโดยเฉพาะอย่างยิ่งในระบบที่ไม่ใช่ยูนิกซ์


2

เพียงพิมพ์สิ่งนี้ลงcommandในAndroid Studio Terminal (หรือ Linux / Mac Terminal ของคุณ)

chmod +x gradlew

และพยายาม:

 ./gradlew assembleDebug

ป้อนคำอธิบายรูปภาพที่นี่


1

ถ้ามันไม่ทำงานหลังจาก chmod'ing ตรวจสอบให้แน่ใจว่าคุณไม่ได้พยายามที่จะดำเนินการภายในไดเรกทอรี / tmp


1

ในกรณีของฉันฉันได้ดำเนินการอนุญาตและฉันไม่สามารถเรียกใช้ gradlew แม้จะมี sudo ปัญหาของฉันคือโครงการของฉันอยู่ในฮาร์ดไดรฟ์อื่นและฉันไม่ได้รับอนุญาตให้ใช้งานไดรฟ์นั้น ฉันเพียงลบ noexec mount flag ออกจาก fstab และเพิ่ม exec flag จากนั้นติดตั้งดิสก์ใหม่เพื่อให้มีการเปลี่ยนแปลง



0

ฉันได้รับข้อผิดพลาดเดียวกันกับที่พยายามรัน flutter ที่ทำงานบน mac เห็นได้ชัดว่าในโครงการกระพือของคุณมีไฟล์ android / gradlew ที่คาดว่าจะปฏิบัติการ (และมันไม่ได้) ดังนั้นในกรณีของฉัน

chmod a+rx android/gradlew

ฉันใช้คำสั่งนี้และดำเนินการโครงการ


0

ข้อผิดพลาดนี้เป็นสิทธิ์แบบไล่ระดับที่เกี่ยวข้อง เพียงวางบรรทัดด้านล่างในเทอร์มินัลของคุณและเรียกใช้ ...

chmod a + rx สำหรับ Android / gradlew


0

บนโฟลเดอร์ android cmd run

chmod +x gradlew

และเรียกใช้

./gradlew clean

และเรียกใช้โครงการรูท

react-native run-android
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.