【问题标题】:Android studio gradle, error: Cause: error=2, No such file or directoryAndroid studio gradle,错误:原因:error=2,没有这样的文件或目录
【发布时间】:2015-02-18 04:04:25
【问题描述】:

我在 Mac OSX Yosemite 上的 Android Studio 1.0.2 上遇到一个奇怪的错误。 该项目没有建立,我得到了

Error:(8, 0) Cause: error=2, No such file or directory

第 8 行在哪里

def gitSha = 'git rev-parse --short HEAD'.execute().text.trim()

我可以通过命令行构建项目。 Android Studio 似乎无法运行 git 命令。

编辑: 它发生在我卸载旧 git(1.9) 并安装更新的一个 (2.0.1) 之后

【问题讨论】:

  • 我确信它与git有关。它发生在我卸载旧 git(1.9) 并安装更新的一个 (2.0.1) 之后
  • 从苹果 git 更新到 git 2.2.1 时遇到了类似的问题,在 Android Studio Preferences 中说没问题,找到了新的 git install,但我仍然收到此错误,几乎就像在某个地方git 的路径是硬编码的,不会因首选项而改变。我最终创建了一个从旧路径到新路径的符号链接。
  • 嘿,kleinsenberg,您的回答奏效了——创建从旧路径到新路径的符号链接。但我想知道是否有更好的解决方案。

标签: android git android-studio android-gradle-plugin


【解决方案1】:

改用 git 的完整路径。

例如"/usr/local/bin/git rev-parse --short HEAD"

你可以通过在终端运行命令“which git”找到你的git路径。

【讨论】:

  • 有同样的问题。我只是为了测试而尝试了这个并且它有效。但它与多开发团队不兼容。
【解决方案2】:

编辑:我与多个开发人员团队合作。我们使用 Linux、Windows 和 OSX。 "return 'git rev-parse --short HEAD'.execute().text.trim()" 适用于 Windows 和 Linux,但不适用于 Mac OS。我们尝试了很多方法来不必使用 if 语句,但 MacOS 似乎需要绝对路径。所以我们的解决方法是在 build.gradle 文件的顶部导入 org.apache.tools.ant.taskdefs.condition.Os 并添加 if 语句。 Os.isFamily(Os.FAMILY_MAC) 返回一个布尔值。

我发现这对我有用:

import org.apache.tools.ant.taskdefs.condition.Os

....

def getVersion(){
    if (Os.isFamily(Os.FAMILY_MAC)) {
        return  '/usr/local/bin/git rev-parse --short HEAD'
                .execute().text.trim()
    } else {
        return  'git rev-parse --short HEAD'.execute().text.trim()
    }
}

【讨论】:

  • 你能补充一些解释吗?
猜你喜欢
  • 2023-03-28
  • 2019-01-01
  • 2019-04-03
  • 2015-11-09
  • 2019-07-11
  • 1970-01-01
  • 2013-08-08
  • 1970-01-01
  • 2020-04-09
相关资源
最近更新 更多