找不到gradlew(没有这样的文件或目录)

问题描述 投票:0回答:9

我从 git 加载一个项目并在 MacBook 上成功构建它。当我在终端窗口中输入“./gradlew assembleRelease”时,出现错误:

bash: ./gradlew: No such file or directory

所以我检查gradlew是否在项目目录下,但我找不到它。 但我仍然可以从“Gradle 项目”窗口运行任务。

怎么了?

gradle gradlew
9个回答
100
投票

gradlew
脚本就是所谓的 Gradle 包装器,一个独立的脚本,允许人们在没有安装 gradle 的情况下运行 Gradle 任务。然而它没有存在来执行 Gradle 任务,它绝对是可选的。

您可以通过执行任务在您的项目中生成Wrapper

gradle wrapper

之后,您可以使用

./gradlew
脚本代替 PATH
 中的 
gradle

要指定 Gradle 版本,请在命令行上使用 --gradle-version。 只需执行命令:

gradle wrapper --gradle-version <your gradle version>

请查看此处以获得更详尽和全面的解释:https://docs.gradle.org/current/userguide/gradle_wrapper.html


18
投票

就我而言,我将 gradlew 文件从 windows(10) 复制到 linux(centos7)。

所以不得不跑

[user@server]$ dos2unix gradlew

并且成功了。

更新:

如果您像我一样从 Windows 复制。 做一件事,在记事本++中打开它,转到“视图”->“显示符号”->“显示行尾”。 您可以注意到

CRLF
这是 Windows EOL。现在将其转换,这样您就不必重做。 转换 notepad++ -> 编辑 -> EOL 转换 -> Unix (
LF
)

就是这样,同时推动 git fiddle .gitattributes


14
投票

bash: ./gradlew: 没有这样的文件或目录

在现有权限中添加所有用户的执行权限

chmod +x gradlew

[gradle 与 gradlew]


3
投票

就我而言,我已将项目从 Windows 计算机移至 Mac,并且它包含回车符 ' '.

brew install dos2unix

find . -type f -exec dos2unix {} \;

./gradlew clean build


2
投票

检查android目录是否存在gradlew。

如果 gradlew 不存在则执行以下命令。

在命令行工具上,将目录更改为 android

$ cd 安卓

$ gradlewrapper --gradle-version 6.0.1(你可以保留你想要的版本)

这将使用默认配置生成与 gradle 相关的所有内容。


1
投票

您应该添加执行权限。 使用

chmod 777 gradlew
chmod +x gradlew


0
投票

对我来说,其中一个 XML 文件中缺少数据绑定变量的名称。


0
投票

删除android文件夹中的

gradlew
文件,然后运行

- flutter clean
- flutter pub get

0
投票

不久前面临同样的挑战,并且不想更新我对任何文件的访问权限。

解决方案:

我导航到项目中的 android 文件夹并从那里运行命令并且它起作用了。

© www.soinside.com 2019 - 2024. All rights reserved.