gradlew:权限被拒绝


286

我正在尝试从命令行运行gradlew,但始终遇到以下错误。

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

我已经在我的项目目录中运行了此命令。需要运行此命令,因为我在Android Studio 0.2.x上遇到与此处相同的错误(非描述性错误):Android studio和gradle构建错误

我做错什么了,我该如何解决?

Answers:


817

尝试在gradlew文件中设置执行标志:

chmod +x gradlew


4
您的意思是chmod + x gradlew?(:有效。请编辑您的答案,以便我将其标记为接受的答案。谢谢!
Brenda Nicole Tan

28
有什么原因默认模板尚未将gradlew设置为可执行文件?我不得不这样做似乎很奇怪。
Ankur

3
设置Atlassian Bamboo版本时,我遇到过类似的问题;从git中检查gradlew文件,它没有可执行文件属性,因此必须向我的工作中添加一个“脚本”任务到chmod + x,如@Vincent所指出的。谢谢!
Doug Ayers 2013年

@Vincent您能否详细说明为什么要解决权限问题才需要这样做?
阿比吉特(Abhijit)2014年

4
@Abhijit,您可以通过执行来检查文件权限ls -l。这为您提供了最左侧一列的文件权限。
Sudhanshu 2014年


33

您可以在命令前使用“ bash”:

bash ./gradlew compileDebug --stacktrace

27

您需要更新的执行权限 gradlew

本地chmod +x gradlew

Git

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

您应该看到:

mode change 100644 => 100755 gradlew

谢谢,对我帮助很大!
Igor Fridman

26

Jenkins>项目仪表板>(选择gradle项目)Configure> Build

x使用Gradle包装器

使gradlew可执行x

在此处输入图片说明


对你起作用吗?我在作业的设置中设置了该复选框,但这并未使gradlew可执行。我使用clean before checkout选项。
zubactik

1
为我工作!您必须明确告诉詹金斯制作可执行文件。
哈维·林

16

git update-index --chmod = + x gradlew

此命令在非unix系统上尤其有效。


2

只需commandAndroid Studio终端(或Linux / Mac终端)中输入此内容即可

chmod +x gradlew

并尝试:

 ./gradlew assembleDebug

在此处输入图片说明



1

就我而言,我已经执行了权限,即使使用sudo也无法运行gradlew。我的问题是我的项目在另一个硬盘中,并且我没有该硬盘的执行权限。我只是从fstab中删除了noexec挂载标志并添加了exec标志。然后重新安装磁盘,以便应用更改。



0

我在执行Mac上的Flutter运行时遇到了相同的错误。显然,在您的flutter项目中,有一个文件android / gradlew,该文件应该是可执行文件(不是)。所以就我而言

chmod a+rx android/gradlew

我使用此命令并执行项目


0

此错误与gradle权限有关。只需将以下行粘贴到您的终端并运行...

chmod a + rx android / gradlew


0

在Android文件夹cmd上运行

chmod +x gradlew

并运行

./gradlew clean

和根项目运行

react-native run-android
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.