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

gradlew is not found (No such file or directory)

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

bash: ./gradlew: No such file or directory

所以我检查了gradlew是否在项目目录下,但我找不到。 但我仍然可以 运行 来自 'Gradle projects' window 的任务。

怎么了?

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

没有那个文件或目录(bash: ./gradlew)

在现有权限的基础上增加所有用户的执行权限

chmod +x gradlew

在我的例子中,我将 gradlew 文件从 windows(10) 复制到 linux(centos7)。

所以不得不 运行

[user@server]$ dos2unix gradlew

它奏效了。

更新:

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

就是这样,同时向 git fiddle .gitattributes

推进

检查 android 目录是否存在 gradlew。

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

在 CommandLine 工具上,将目录更改为 android

$ cd android

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

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

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

在我的例子中,我已将项目从 Windows 机器移动到 Mac,它包含回车符 returns '\r'。

brew install dos2unix

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

./gradlew clean build

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