403

我正在尝试从我的命令行运行 gradlew,但一直面临以下错误。

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

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

我做错了什么,我该如何解决这个问题?

4

13 回答 13

1110

尝试在您的 gradlew 文件上设置执行标志:

chmod +x gradlew

于 2013-07-16T06:33:30.817 回答
133

也可以用

git update-index --chmod=+x gradlew
于 2018-03-02T15:45:49.917 回答
51

您需要更新执行权限gradlew

本地chmod +x gradlew

吉特

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

你应该看到:

mode change 100644 => 100755 gradlew
于 2019-01-05T01:56:12.027 回答
39

You could use "bash" before command:

bash ./gradlew compileDebug --stacktrace
于 2014-07-09T04:07:03.450 回答
28

Jenkins > 项目仪表板 >(选择 gradle 项目)配置 > 构建

x使用 Gradle 包装器

使 gradlew 可执行 x

在此处输入图像描述

于 2014-11-23T12:52:06.573 回答
19

git update-index --chmod=+x gradlew

此命令效果更好,尤其是在非 unix 系统上。

于 2018-03-02T17:20:05.103 回答
13

只需commandAndroid Studio 终端(或您的 Linux/Mac 终端)中输入

chmod +x gradlew

并尝试:

 ./gradlew assembleDebug

在此处输入图像描述

于 2020-04-06T08:42:54.220 回答
9

在 android 文件夹 cmd 上运行

chmod +x gradlew

并运行

./gradlew clean

和根项目运行

react-native run-android
于 2020-06-05T13:37:33.257 回答
6

通过这一步设置权限到gradlew

steps {
    echo 'Compile project'
    sh "chmod +x gradlew"
    sh "./gradlew clean build --no-daemon"
}
于 2020-07-28T00:06:46.877 回答
1

如果在 chmod'ing 后它不起作用,请确保您没有尝试在 /tmp 目录中执行它。

于 2016-07-15T17:25:22.233 回答
1

试试下面的命令:

chmod +x gradlew && ./gradlew compileDebug --stacktrace
于 2019-09-16T06:11:42.550 回答
1

当您将 Windows 中的 android 项目构建迁移到任何 unix 操作系统 (Linux) 时,会出现此问题。因此,您需要在项目目录中运行以下命令,将 dos 换行符转换为 Unix 换行符。

find . -type f -print0 | xargs -0 dos2unix

如果你没有安装dos2unix。使用安装它

在 CentOs/Fedora

yum install dos2unix

在 Ubuntu 和其他发行版中

sudo apt install dos2unix
于 2021-01-15T09:28:28.180 回答
0

尝试在 mac 上执行颤振运行时遇到了同样的错误。显然,在您的颤振项目中,有一个文件 android/gradlew 预计是可执行的(但事实并非如此)。所以就我而言,

chmod a+rx android/gradlew

我使用了这个命令并执行了项目

于 2020-03-03T04:31:57.800 回答