gradlew: permissão negada


286

Estou tentando executar gradlew na minha linha de comando, mas estou constantemente enfrentando o seguinte erro.

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

Eu já estou executando este comando no diretório do meu projeto. Preciso executar este comando, pois estou enfrentando o mesmo erro (não descritivo) no Android Studio 0.2.x, como encontrado aqui: Erro de criação do Android Studio e do Gradle

Estou fazendo algo errado e como contornar isso?

Respostas:


817

Tente definir o sinalizador de execução no seu arquivo gradlew:

chmod +x gradlew


4
Você quer dizer chmod + x gradlew? (: Ele trabalhou Edite a sua resposta para que eu possa marcá-lo como o único aceite Graças..!
Brenda Nicole Tan

28
existe algum motivo para o modelo padrão ainda não definir o gradlew como executável? parece estranho que eu teria que fazer isso.
Ankur #

3
Eu tive um problema semelhante ao configurar o Atlassian Bamboo build; ao verificar o arquivo gradlew no git, ele não tinha o atributo executável, então tive que adicionar uma tarefa "script" ao meu trabalho no chmod + x, como @Vincent apontou. Obrigado!
Doug Ayers

@Vincent, você poderia explicar por que isso é necessário para resolver o problema de permissão?
Abhijit

4
@Abhijit você pode verificar as permissões de arquivo fazendo ls -l. Isso fornece as permissões de arquivo na coluna mais à esquerda.
Sudhanshu

57

Também pode ser corrigido com

git update-index --chmod=+x gradlew

1
Exatamente o que eu estava procurando!
sschrass

1
correção adequada para usuários do Windows. Obrigado!
GBP

5
... e commit e push são necessários depois #
Michal Hosala 29/08/19

33

Você pode usar "bash" antes do comando:

bash ./gradlew compileDebug --stacktrace

27

Você precisa atualizar a permissão de execução para gradlew

Localmente :chmod +x gradlew

Git :

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

Você deveria ver:

mode change 100644 => 100755 gradlew

Obrigado, me ajudou muito!
Igor Fridman

26

Jenkins> Painel do Projeto> (selecione o projeto gradle) Configurar> Construir

x Usar Wrapper Gradle

Tornar executável gradlew x

insira a descrição da imagem aqui


Funciona para você? Marquei a caixa de seleção nas configurações do meu trabalho, mas isso não levou à execução do gradlew. Eu uso a clean before checkoutopção.
Zubactik

1
Funciona para mim! Você precisa informar explicitamente ao jenkins para tornar o executável.
Harvey Lin

16

git update-index --chmod = + x gradlew

Este comando funciona melhor, especialmente em sistemas não-unix.


2

Basta digitar isso commandno Android Studio Terminal (ou no seu Linux / Mac Terminal)

chmod +x gradlew

e tente:

 ./gradlew assembleDebug

insira a descrição da imagem aqui


1

se não funcionar após chmod'ing, verifique se você não está tentando executá-lo dentro do diretório / tmp.


1

No meu caso, eu havia executado permissões e não conseguia executar o gradlew mesmo com o sudo. meu problema era que meu projeto estava em outro disco rígido e eu não tinha permissão de executor nessa unidade. Eu simplesmente removi o sinalizador de montagem noexec do fstab e adicionei o sinalizador de exec. remonte o disco para que as alterações se apliquem.


0

Tente abaixo do comando:

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

0

Eu recebi o mesmo erro ao tentar executar a vibração em um mac. Aparentemente, no seu projeto de flutter, existe um arquivo android / gradlew que deve ser executável (e não era). Então, no meu caso,

chmod a+rx android/gradlew

eu usei esse comando e execute o projeto


0

Este erro está relacionado à permissão gradle. Basta colar abaixo da linha no seu terminal e executar ...

chmod a + rx android / gradlew


0

na pasta android cmd run

chmod +x gradlew

e corra

./gradlew clean

e execução do projeto raiz

react-native run-android
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.