我从Git中加载了一个项目并在MacBook上成功构建了它。当我在终端窗口中输入'./gradlew assembleRelease'时,我收到了一个错误:
bash: ./gradlew: No such file or directory
所以我检查了gradlew是否在项目目录下,但是我没有找到它。 但我仍然可以从“Gradle项目”窗口运行任务。
问题出在哪里?
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
在我的情况下,我将gradlew文件从Windows(10)复制到Linux(centos7)。
所以我不得不运行
[user@server]$ dos2unix gradlew
它有效了。
更新:
如果您像我一样从Windows复制。做一件事,在Notepad ++中打开它,转到查看 -> 显示符号 -> 显示行尾。 您可以注意到 CRLF
这是Windows EOL。 现在进行转换,这样您就不必重做了。
要将notepad++转换为Unix(LF
)-> 编辑 -> EOL Conversion。
就这样,当推向git时,研究.gitattributes。
在我的情况下,我将项目从Windows机器移动到了Mac,并且它包含回车符'\r'。
brew install dos2unix
find . -type f -exec dos2unix {} \;
./gradlew clean build
如果存在gradlew,请检查android目录。
如果不存在gradlew,则执行以下命令。
在命令行工具上,切换到android目录
$ cd android
$ gradle wrapper --gradle-version 6.0.1(您可以保留所需的版本)
这将生成与gradle相关的所有内容,并使用默认配置。
您应该添加执行权限。可以使用 chmod 777 gradlew
或 chmod +x gradlew
。
对我来说,一个XML文件中的数据绑定变量缺少名称。
gradlew
文件,然后运行。- flutter clean
- flutter pub get
build
任务没有依赖于wrapper
任务,这是有道理的:构建一个项目不应该包括构建 Gradle 包装器,而应该使用已经准备好的包装器。 - Sergei Voitovichgradlew
文件,而且你也没有安装gradle
,那么你必须安装gradle
。然后,如果你愿意,你可以生成gradle wrapper
。 - Sergei Voitovichbrew install gradle
,然后运行此答案中提到的命令。 - Andrew Steinmetz