我从 git 加载一个项目并在 MacBook 上成功构建它。当我在终端窗口中输入“./gradlew assembleRelease”时,出现错误:
bash: ./gradlew: No such file or directory
所以我检查gradlew是否在项目目录下,但我找不到它。 但我仍然可以从“Gradle 项目”窗口运行任务。
怎么了?
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
就我而言,我将 gradlew 文件从 windows(10) 复制到 linux(centos7)。
所以不得不跑
[user@server]$ dos2unix gradlew
并且成功了。
更新:
如果您像我一样从 Windows 复制。 做一件事,在记事本++中打开它,转到“视图”->“显示符号”->“显示行尾”。 您可以注意到
CRLF
这是 Windows EOL。现在将其转换,这样您就不必重做。
转换 notepad++ -> 编辑 -> EOL 转换 -> Unix (LF
)
就是这样,同时推动 git fiddle .gitattributes
就我而言,我已将项目从 Windows 计算机移至 Mac,并且它包含回车符 ' '.
brew install dos2unix
find . -type f -exec dos2unix {} \;
./gradlew clean build
检查android目录是否存在gradlew。
如果 gradlew 不存在则执行以下命令。
在命令行工具上,将目录更改为 android
$ cd 安卓
$ gradlewrapper --gradle-version 6.0.1(你可以保留你想要的版本)
这将使用默认配置生成与 gradle 相关的所有内容。
您应该添加执行权限。 使用
chmod 777 gradlew
或 chmod +x gradlew
。
对我来说,其中一个 XML 文件中缺少数据绑定变量的名称。
删除android文件夹中的
gradlew
文件,然后运行
- flutter clean
- flutter pub get
不久前面临同样的挑战,并且不想更新我对任何文件的访问权限。
解决方案:
我导航到项目中的 android 文件夹并从那里运行命令并且它起作用了。