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.