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?

Brenda Nicole Tan
la source

Réponses:

818

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

chmod +x gradlew

Vincent Cantin
la source
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
user1921819
la source
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
user3816061
la source
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
Vishrant
la source
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

Pnémonique
la source
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.

ekarankow
la source
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

sana ebadi
la source
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.

Quinn Carver
la source
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.

mh. bitarafan
la source
0

Essayez la commande ci-dessous:

chmod +x gradlew && ./gradlew compileDebug --stacktrace
Brijesh Shiroya
la source
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

Shubham_Narkhede
la source
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

Gaurav Pandit
la source
0

sur le dossier android cmd run

chmod +x gradlew

et courir

./gradlew clean

et exécution du projet racine

react-native run-android
iman roosta
la source