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ć?

Odpowiedzi:


818

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

chmod +x gradlew


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



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

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


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.


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


1

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


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.



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


0

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

chmod a + rx android / gradlew


0

na uruchamianie folderu cmd Androida

chmod +x gradlew

i biegnij

./gradlew clean

i uruchomienie projektu root

react-native run-android
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.