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? (: Это сработало. Пожалуйста, отредактируйте ваш ответ, чтобы я мог пометить его как принятый. Спасибо!
Бренда Николь Тан

28
есть ли какая-то причина, по которой шаблон по умолчанию не устанавливает gradlew как исполняемый файл? кажется странным, что я должен был бы сделать это.
Анкур

3
У меня была похожая проблема при настройке сборки Atlassian Bamboo; извлекая файл gradlew из git, он не имел исполняемого атрибута, поэтому пришлось добавить задачу «скрипт» в мою работу в chmod + x, как указывал @Vincent. Спасибо!
Даг Айерс

@ Винсент, не могли бы вы рассказать, почему это необходимо для разрешения проблемы с разрешениями?
Абхиджит

4
@Abhijit вы можете проверить права доступа к файлам, выполнив ls -l. Это дает вам права доступа к файлу в самом левом столбце.
Судханшу

59

Также может быть исправлено

git update-index --chmod=+x gradlew

1
Именно то, что я искал!
sschrass

1
правильное решение для пользователей Windows. Спасибо!
GBP

5
... а потом нужны
коммиты

33

Вы можете использовать «bash» перед командой:

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

Jenkins> Панель инструментов проекта> (выберите проект Gradle) Настройка> Построить

x Используйте Gradle Wrapper

Сделать Gradlew исполняемым X

введите описание изображения здесь


Работает ли это для вас? Я установил флажок в настройках моей работы, но это не привело к тому, что gradlew стал исполняемым. Я использую clean before checkoutвариант.
zubactik

1
Работает для меня! Вы должны явно сказать Дженкинсу сделать исполняемый файл.
Харви Лин

16

git update-index --chmod = + x gradlew

Эта команда работает лучше, особенно в не-Unix системах.


2

Просто введите это commandв Android Studio Terminal (Или ваш терминал Linux / Mac)

chmod +x gradlew

и попытаться:

 ./gradlew assembleDebug

введите описание изображения здесь


1

если он не работает после chmod'а, убедитесь, что вы не пытаетесь выполнить его в каталоге / tmp.


1

В моем случае я выполнил разрешения и не смог запустить gradlew даже с sudo. моя проблема заключалась в том, что мой проект был на другом жестком диске, и у меня не было разрешения exec на этом диске. Я просто удалил флаг монтирования noexec из fstab и добавил флаг exec. затем перемонтируйте диск, чтобы изменения вступили в силу.



0

Я получил ту же ошибку при попытке запустить флаттер на Mac. По-видимому, в вашем проекте флаттера есть файл android / gradlew, который, как ожидается, будет исполняемым (и не был). Так что в моем случае,

chmod a+rx android/gradlew

я использовал эту команду и выполнил проект


0

Эта ошибка связана с разрешением Gradle. Просто вставьте строку ниже в вашем терминале и запустите ...

chmod a + rx android / gradlew


0

на андроид папку cmd запустить

chmod +x gradlew

и беги

./gradlew clean

и запуск корневого проекта

react-native run-android
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.