gradlew: Izin Ditolak


286

Saya mencoba menjalankan gradlew dari baris perintah saya, tetapi saya terus-menerus menghadapi kesalahan berikut.

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

Saya sudah menjalankan perintah ini dari direktori proyek saya. Perlu menjalankan perintah ini karena saya menghadapi kesalahan (nondeskriptif) yang sama pada Android Studio 0.2.x seperti yang dijumpai di sini: Android studio dan gradle build error

Apakah saya melakukan sesuatu yang salah dan bagaimana saya mengatasinya?

Jawaban:


817

Cobalah untuk mengatur flag eksekusi pada file gradlew Anda:

chmod +x gradlew


4
Maksudmu, chmod + x gradlew? (: Berhasil. Harap edit jawaban Anda sehingga saya dapat menandainya sebagai yang diterima. Terima kasih!
Brenda Nicole Tan

28
apakah ada alasan mengapa templat default belum disetel gradlew sebagai executable? tampaknya aneh bahwa saya harus melakukan ini.
Ankur

3
Saya memiliki masalah yang sama ketika mengatur pembangunan Bambu Atlassian; memeriksa file gradlew dari git tidak memiliki atribut yang dapat dieksekusi sehingga harus menambahkan tugas "script" ke pekerjaan saya ke chmod + x seperti yang ditunjukkan oleh @Vincent. Terima kasih!
Doug Ayers

@Incent dapatkah Anda menjelaskan mengapa ini diperlukan untuk menyelesaikan masalah izin?
Abhijit

4
@ Abhijit Anda dapat memeriksa izin file dengan melakukan ls -l. Ini memberi Anda izin file di kolom paling kiri.
Sudhanshu

57

Bisa juga diperbaiki dengan

git update-index --chmod=+x gradlew

1
Persis apa yang saya cari!
sschrass

1
perbaikan yang tepat untuk pengguna windows. Terima kasih!
GBP

5
... dan komit dan dorong diperlukan sesudahnya
Michal Hosala

33

Anda bisa menggunakan "bash" sebelum perintah:

bash ./gradlew compileDebug --stacktrace

27

Anda perlu memperbarui izin eksekusi untuk gradlew

Secara lokal :chmod +x gradlew

Git :

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

Anda harus melihat:

mode change 100644 => 100755 gradlew

Terima kasih, banyak membantu saya!
Igor Fridman

26

Jenkins> Project Dashboard> (pilih proyek gradle) Configure> Build

x Gunakan Gradle Wrapper

Jadikan gradlew dapat dieksekusi x

masukkan deskripsi gambar di sini


Apakah itu berhasil untuk Anda? Saya mengatur kotak centang di pengaturan pekerjaan saya tetapi tidak mengarah pada membuat gradlew dapat dieksekusi. Saya menggunakan clean before checkoutopsi.
zubactik

1
Bekerja untukku! Anda harus memberi tahu jenkins secara eksplisit untuk membuat executable.
Harvey Lin

16

git update-index --chmod = + x gradlew

Perintah ini berfungsi lebih baik terutama pada sistem non-unix.


2

Cukup ketik ini commanddi Terminal Android Studio (Atau Terminal Linux / Mac Anda)

chmod +x gradlew

dan cobalah untuk:

 ./gradlew assembleDebug

masukkan deskripsi gambar di sini


1

jika tidak berfungsi setelah chmod'ing pastikan Anda tidak mencoba menjalankannya di dalam direktori / tmp.


1

Dalam kasus saya, saya telah mengeksekusi izin dan saya tidak bisa menjalankan gradlew bahkan dengan sudo. masalah saya adalah proyek saya berada di hard drive lain dan saya tidak memiliki izin exec pada drive itu. Saya hanya menghapus flag mount noexec dari fstab dan menambahkan flag exec. kemudian pasang kembali disk sehingga perubahan berlaku.



0

Saya mendapat kesalahan yang sama mencoba menjalankan flutter run di mac. Rupanya, dalam proyek flutter Anda, ada file android / gradlew yang diharapkan dapat dieksekusi (dan ternyata tidak). Jadi dalam kasus saya,

chmod a+rx android/gradlew

saya menggunakan perintah ini dan menjalankan proyek


0

Kesalahan ini terkait izin gradle. Cukup rekatkan baris di bawah ini di terminal Anda dan jalankan ...

chmod a + rx android / gradlew


0

di folder android cmd run

chmod +x gradlew

dan lari

./gradlew clean

dan jalankan proyek root

react-native run-android
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.