gradlew未找到(无此文件或目录)

48

我从Git中加载了一个项目并在MacBook上成功构建了它。当我在终端窗口中输入'./gradlew assembleRelease'时,我收到了一个错误:

bash: ./gradlew: No such file or directory

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

问题出在哪里?

8个回答

100

gradlew脚本是所谓的Gradle包装器,它是一个自包含的脚本,允许人们在没有安装Gradle的情况下运行Gradle任务。然而,它不存在也可以执行Gradle任务,这是完全可选的。

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

gradle wrapper

随后,您可以使用./gradlew脚本代替路径中的gradle

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

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

点击此处查看更详尽、综合的解释:https://docs.gradle.org/current/userguide/gradle_wrapper.html


非常感谢!你解决了我的问题。我在构建文件中添加了 'task wrapper(type: Wrapper) { gradleVersion = '2.0' } ' 并执行了任务包装器,gradlew脚本再次生成在项目目录下。但是我仍然不知道为什么在构建任务之后该文件没有自动生成。 - huyn
@huyn 可能 build 任务没有依赖于 wrapper 任务,这是有道理的:构建一个项目不应该包括构建 Gradle 包装器,而应该使用已经准备好的包装器。 - Sergei Voitovich
1
你好,我遇到了同样的问题,但是当我尝试使用'gradle wrapper'时,它显示bash: gradle: command not found,所以我又卡住了,我错过了什么吗? - MNFS
如果你的项目中没有gradlew文件,而且你也没有安装gradle,那么你必须安装gradle。然后,如果你愿意,你可以生成gradle wrapper - Sergei Voitovich
1
如果您的Mac上没有安装Gradle,您可以运行brew install gradle,然后运行此答案中提到的命令。 - Andrew Steinmetz
显示剩余2条评论

18

在我的情况下,我将gradlew文件从Windows(10)复制到Linux(centos7)。

所以我不得不运行

[user@server]$ dos2unix gradlew

它有效了。

更新:

如果您像我一样从Windows复制。做一件事,在Notepad ++中打开它,转到查看 -> 显示符号 -> 显示行尾。 您可以注意到 CRLF 这是Windows EOL。 现在进行转换,这样您就不必重做了。 要将notepad++转换为Unix(LF)-> 编辑 -> EOL Conversion。

就这样,当推向git时,研究.gitattributes


13
bash: ./gradlew: 没有这个文件或目录
为现有权限添加所有用户的执行权限
chmod +x gradlew

[gradle vs gradlew]


2
这解决了我的问题,我能在目录中看到gradlew但无法执行... 这让我想到文件可能没有执行权限... 谢谢。 - AbdulMueed

3

在我的情况下,我将项目从Windows机器移动到了Mac,并且它包含回车符'\r'。

brew install dos2unix

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

./gradlew clean build


1

如果存在gradlew,请检查android目录。

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

在命令行工具上,切换到android目录

$ cd android

$ gradle wrapper --gradle-version 6.0.1(您可以保留所需的版本)

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


1

您应该添加执行权限。可以使用 chmod 777 gradlewchmod +x gradlew


0

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


0
删除android文件夹中的gradlew文件,然后运行。
- flutter clean
- flutter pub get

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接