我正在尝试从我的命令行运行 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
我做错了什么,我该如何解决这个问题?
尝试在您的 gradlew 文件上设置执行标志:
chmod +x gradlew
也可以用
git update-index --chmod=+x gradlew
您需要更新 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
您可以在命令前使用“bash”:
bash ./gradlew compileDebug --stacktrace
Jenkins > 项目仪表板 >(选择 gradle 项目)配置 > 构建
使用 Gradle 包装器
使 gradlew 可执行 x
https://i.stack.imgur.com/zj5To.png
clean before checkout
选项。
git update-index --chmod=+x gradlew
此命令效果更好,尤其是在非 unix 系统上。
只需在 Android Studio 终端(或您的 Linux/Mac 终端)中输入此 command
chmod +x gradlew
并尝试:
./gradlew assembleDebug
https://i.stack.imgur.com/bLC5V.png
在 android 文件夹 cmd 上运行
chmod +x gradlew
并运行
./gradlew clean
和根项目运行
react-native run-android
通过这一步设置权限到 gradlew
steps {
echo 'Compile project'
sh "chmod +x gradlew"
sh "./gradlew clean build --no-daemon"
}
当您将 Windows 中的 android 项目构建迁移到任何 unix 操作系统 (Linux) 时,会出现此问题。因此,您需要在项目目录中运行以下命令,将 dos 换行符转换为 Unix 换行符。
find . -type f -print0 | xargs -0 dos2unix
如果你没有安装dos2unix。使用安装它
在 CentOs/Fedora
yum install dos2unix
在 Ubuntu 和其他发行版中
sudo apt install dos2unix
如果在 chmod'ing 后它不起作用,请确保您没有尝试在 /tmp 目录中执行它。
试试下面的命令:
chmod +x gradlew && ./gradlew compileDebug --stacktrace
尝试在 mac 上执行颤振运行时遇到了同样的错误。显然,在您的颤振项目中,有一个文件 android/gradlew 预计是可执行的(但事实并非如此)。所以就我而言,
chmod a+rx android/gradlew
我使用了这个命令并执行了项目
仅适用于 Linux
视图 > 工具窗口 > 终端
前
./gradlew.bat tasks
后
./gradlew tasks
例如
./gradlew dokkaHtml
有时错误只是一个错字,使用 gradle 而不是 gradlew 包装器。
https://i.stack.imgur.com/oeyUw.png
对于在 android studio 中遇到此问题的 Windows 用户,请将您的终端从 Windows PowerShell 更改为 cmd
不定期副业成功案例分享
ls -l
检查文件权限。这为您提供了最左侧列的文件权限。git update-index --chmod=+x ./gradlew