【问题标题】:gradlew is not found (No such file or directory)找不到 gradlew(没有这样的文件或目录)
【发布时间】:2021-10-26 03:07:26
【问题描述】:

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

bash: ./gradlew: No such file or directory

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

怎么了?

【问题讨论】:

    标签: gradle gradlew


    【解决方案1】:

    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

    【讨论】:

    • 非常感谢!你解决了我的案子。我将 'task wrapper(type: Wrapper) { gradleVersion = '2.0' } ' 添加到我的构建文件并执行任务包装器,再次在项目目录下生成 gradlew 脚本。但是我仍然不知道为什么在构建任务之后没有自动生成这个文件。
    • @huyn 可能build 任务不依赖于wrapper 任务,这是有道理的:构建项目不应该包括构建 gradle 包装器,它应该使用现成的包装器
    • 你好,我遇到了同样的问题,但是当我尝试“gradle wrapper”时,它说 bash: gradle: command not found,所以我又被卡住了,有吗有什么我想念的吗?
    • @MNFS 因此,如果您的项目中没有gradlew 文件并且您没有安装gradle,则您必须安装gradle。然后,如果你愿意,你可以生成gradle wrapper
    • 如果你的mac上没有安装gradle,你可以运行brew install gradle,然后运行这个答案中的命令。
    【解决方案2】:

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

    所以不得不跑

    [user@server]$ dos2unix gradlew
    

    它奏效了。

    更新:

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

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

    【讨论】:

      【解决方案3】:

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

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

      chmod +x gradlew
      

      【讨论】:

      • 这解决了我的问题,我可以在目录中看到 gradlew 但无法执行..这给了我提示文件可能没有执行权限..谢谢
      【解决方案4】:

      检查android目录是否存在gradlew。

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

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

      $ cd 安卓

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

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

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

          brew install dos2unix

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

          ./gradlew clean build

          【讨论】:

            【解决方案7】:

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2018-03-08
              • 2018-12-17
              • 1970-01-01
              • 2021-02-27
              • 2022-10-22
              • 1970-01-01
              • 2014-09-13
              • 1970-01-01
              相关资源
              最近更新 更多