gradlew: Odmowa zezwolenia

286

Próbuję uruchomić gradlew z mojego wiersza poleceń, ale ciągle napotykam następujący błąd.

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

Już uruchamiam to polecenie z katalogu projektu. Muszę uruchomić to polecenie, ponieważ mam do czynienia z tym samym (nieopisowym) błędem w Android Studio 0.2.x, jak napotkano tutaj: Android Studio i błąd kompilacji stopni

Czy robię coś złego i jak sobie z tym poradzić?

Brenda Nicole Tan
źródło

Odpowiedzi:

818

Spróbuj ustawić flagę wykonania w pliku gradlew:

chmod +x gradlew

Vincent Cantin
źródło
4
Masz na myśli, chmod + x gradlew? (: Udało się. Edytuj swoją odpowiedź, abym mógł oznaczyć ją jako zaakceptowaną. Dzięki!
Brenda Nicole Tan
28
czy jest jakiś powód, dla którego domyślny szablon nie ustawił gradlew jako wykonywalnego? wydaje się dziwne, że musiałbym to zrobić.
Ankur,
3
Miałem podobny problem podczas konfigurowania kompilacji Atlassian Bamboo; sprawdzanie pliku gradlew z git nie miał atrybutu wykonywalnego, więc musiałem dodać zadanie „skryptowe” do mojego zadania, aby chmod + x, jak wskazał @Vincent. Dzięki!
Doug Ayers
@Vincent, czy mógłbyś wyjaśnić, dlaczego jest to konieczne do rozwiązania problemu z pozwoleniem?
Abhijit
4
@Abhijit możesz sprawdzić uprawnienia do plików, wykonując ls -l. Daje to uprawnienia do plików w lewej kolumnie.
Sudhanshu
58

Można to również naprawić za pomocą

git update-index --chmod=+x gradlew
użytkownik1921819
źródło
1
Dokładnie tego szukałem!
sschrass
1
poprawna poprawka dla użytkowników systemu Windows. Dziękuję Ci!
GBP o
5
... i potem zatwierdzaj i wypychaj
Michał Hosala
33

Możesz użyć „bash” przed poleceniem:

bash ./gradlew compileDebug --stacktrace
użytkownik3816061
źródło
27

Musisz zaktualizować uprawnienie do wykonywania dla gradlew

Lokalnie :chmod +x gradlew

Git :

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

Powinieneś zobaczyć:

mode change 100644 => 100755 gradlew
Vishrant
źródło
Dzięki, bardzo mi pomogłeś!
Igor Fridman
26

Jenkins> Pulpit projektu> (wybierz projekt stopniowy) Konfiguruj> Kompiluj

x Użyj Gradle Wrapper

Spraw, aby gradlew był wykonywalny x

wprowadź opis zdjęcia tutaj

Pnemoniczny
źródło
Czy Ci to pasuje? Ustawiłem pole wyboru w ustawieniach mojego zadania, ale nie doprowadziło to do uruchomienia gradlew. Korzystam z clean before checkoutopcji.
zubactik
1
Pracuje dla mnie! Musisz wyraźnie powiedzieć Jenkinsowi, aby wykonalny.
Harvey Lin
16

git update-index --chmod = + x gradlew

To polecenie działa lepiej, zwłaszcza w systemie innym niż Unix.

ekarankow
źródło
2

Po prostu wpisz to commandw terminalu Android Studio (lub terminalu Linux / Mac)

chmod +x gradlew

i spróbuj:

 ./gradlew assembleDebug

wprowadź opis zdjęcia tutaj

sana ebadi
źródło
1

jeśli nie działa po chmod'ing, upewnij się, że nie próbujesz wykonać go w katalogu / tmp.

Quinn Carver
źródło
1

W moim przypadku wykonałem uprawnienia i nie mogłem uruchomić gradlew nawet z sudo. moim problemem było to, że mój projekt był na innym dysku twardym i nie miałem uprawnień do wykonywania na tym dysku. Po prostu usunąłem flagę noexec mount z fstab i dodałem flagę exec. następnie ponownie zainstaluj dysk, aby zastosować zmiany.

mh bitarafan
źródło
0

Spróbuj wykonać poniższe polecenie:

chmod +x gradlew && ./gradlew compileDebug --stacktrace
Brijesh Shiroya
źródło
0

Mam ten sam błąd podczas próby uruchomienia trzepotania na komputerze Mac. Najwyraźniej w twoim projekcie trzepotania istnieje plik android / gradlew, który ma być wykonywalny (a nie był). Więc w moim przypadku

chmod a+rx android/gradlew

Użyłem tego polecenia i wykonałem projekt

Shubham_Narkhede
źródło
0

Ten błąd dotyczy uprawnień stopniowych. Po prostu wklej poniżej linii w swoim terminalu i uruchom ...

chmod a + rx android / gradlew

Gaurav Pandit
źródło
0

na uruchamianie folderu cmd Androida

chmod +x gradlew

i biegnij

./gradlew clean

i uruchomienie projektu root

react-native run-android
iman roosta
źródło