gradlew: Autorisation refusée


287

J'essaie d'exécuter gradlew à partir de ma ligne de commande, mais je suis constamment confronté à l'erreur suivante.

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

J'exécute déjà cette commande à partir de mon répertoire de projet. Besoin d'exécuter cette commande car je suis confronté à la même erreur (non descriptive) sur Android Studio 0.2.x que celle rencontrée ici: Android studio et gradle build error

Suis-je en train de faire quelque chose de mal et comment puis-je contourner ce problème?

Réponses:


818

Essayez de définir l'indicateur d'exécution sur votre fichier gradlew:

chmod +x gradlew


4
Vous voulez dire, chmod + x gradlew? (: Cela a fonctionné. Veuillez modifier votre réponse afin que je puisse la marquer comme acceptée. Merci!
Brenda Nicole Tan

28
y a-t-il une raison pour laquelle le modèle par défaut ne définit pas déjà gradlew comme exécutable? il me semble étrange que je doive le faire.
Ankur

3
J'ai rencontré un problème similaire lors de la configuration d'Atlassian Bamboo; en vérifiant le fichier gradlew depuis git, il n'avait pas l'attribut exécutable, donc j'ai dû ajouter une tâche "script" à mon travail dans chmod + x comme l'a souligné @Vincent. Merci!
Doug Ayers

@Vincent, pourriez-vous expliquer pourquoi cela est nécessaire pour résoudre le problème d'autorisation?
Abhijit

4
@Abhijit vous pouvez vérifier les autorisations de fichier en faisant ls -l. Cela vous donne les autorisations de fichier sur la colonne la plus à gauche.
Sudhanshu

59

Pourrait également être corrigé avec

git update-index --chmod=+x gradlew

1
Exactement ce que je cherchais!
sschrass

1
correctif approprié pour les utilisateurs de Windows. Je vous remercie!
GBP

5
... et s'engager et pousser sont nécessaires par la suite
Michal Hosala

33

Vous pouvez utiliser "bash" avant la commande:

bash ./gradlew compileDebug --stacktrace

27

Vous devez mettre à jour l'autorisation d'exécution pour gradlew

Localement :chmod +x gradlew

Git :

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

Tu devrais voir:

mode change 100644 => 100755 gradlew

Merci, ça m'a beaucoup aidé!
Igor Fridman

26

Jenkins> Tableau de bord du projet> (sélectionnez le projet gradle) Configurer> Construire

x Utiliser Gradle Wrapper

Rendre gradlew exécutable x

entrez la description de l'image ici


Est-ce que ça marche pour toi? J'ai mis la case à cocher dans les paramètres de mon travail mais cela n'a pas conduit à rendre gradlew exécutable. J'utilise l' clean before checkoutoption.
zubactik

1
Travaille pour moi! Vous devez dire explicitement à jenkins de rendre l'exécutable.
Harvey Lin

16

git update-index --chmod = + x gradlew

Cette commande fonctionne mieux en particulier sur les systèmes non-unix.


2

Tapez simplement ceci commanddans Android Studio Terminal (ou votre terminal Linux / Mac)

chmod +x gradlew

et essayez de:

 ./gradlew assembleDebug

entrez la description de l'image ici


1

si cela ne fonctionne pas après chmod'ing, assurez-vous que vous n'essayez pas de l'exécuter dans le répertoire / tmp.


1

Dans mon cas, j'avais exécuté des autorisations et je ne pouvais pas exécuter gradlew même avec sudo. mon problème était que mon projet se trouvait sur un autre disque dur et je n'avais pas d'autorisation d'exécution sur ce disque. J'ai simplement supprimé le drapeau de montage noexec de fstab et ajouté le drapeau exec. remontez ensuite le disque pour que les modifications s'appliquent.


0

Essayez la commande ci-dessous:

chmod +x gradlew && ./gradlew compileDebug --stacktrace

0

J'ai eu la même erreur en essayant d'exécuter Flutter Run sur un Mac. Apparemment, dans votre projet flutter, il y a un fichier android / gradlew qui devrait être exécutable (et ce ne l'était pas). Donc dans mon cas,

chmod a+rx android/gradlew

j'ai utilisé cette commande et exécuté le projet


0

Cette erreur est liée à l'autorisation Gradle. Collez simplement la ligne ci-dessous dans votre terminal et lancez ...

chmod a + rx android / gradlew


0

sur le dossier android cmd run

chmod +x gradlew

et courir

./gradlew clean

et exécution du projet racine

react-native run-android
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.