2014-12-19 25 views
4

我在Mac OSX上獲得優勝美地在Android 1.0.2工作室一個奇怪的錯誤。 項目不建,我得到Android的工作室gradle這個程序,error:原因:錯誤= 2,沒有這樣的文件或目錄

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

當行號8

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

我能夠通過構建命令行的項目。看來,Android工作室無法運行git命令。

編輯: 這件事發生後,我卸載舊的混帳(1.9),並安裝了一個更新(2.0.1)

+0

嘗試.. http://stackoverflow.com/questions/23456773/gradle-execution-error-in-android-studio-ubuntu-解決?answertab =票#tab-top – 2014-12-19 08:49:56

+0

我相信它與git有關。它發生在我卸載舊的git(1.9)並安裝了更新版本(2.0.1) – 2014-12-19 10:44:02

+3

在從apple git更新爲git 2.2.1時出現類似問題,在Android Studio Preferences中表示沒問題,發現新的git install,但我仍然有這個錯誤,就好像git的路徑硬編碼一樣,並且不會通過首選項改變。我最終創建了一條從舊路徑到新路徑的simbolic鏈接。 – kleinsenberg 2014-12-23 09:27:28

回答

3

使用git的完整路徑代替。

例如「在/ usr/local/bin目錄/ git的REV-解析--short HEAD」

你可以找到你的Git路徑通過運行命令 「這混帳」 的終端。

+1

有同樣的問題。我試過這個只是爲了測試,它的工作原理。但它與多開發團隊不兼容。 – Sloy 2015-09-05 19:09:59

0

編輯:我有多個開發團隊中工作。我們使用Linux,Windows和OSX。 「迴歸「混帳REV-解析--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() 
    } 
} 
+1

你可以添加一些解釋嗎? – 2017-08-08 18:01:55

相關問題