2014-11-24 106 views
0

当我将Android项目从Eclipse迁移到Android Studio时,使用travis ci来构建项目,它有以下错误。git用非零退出值完成128

失败:生成失败并出现异常。
*其中:
构建文件 '/home/travis/build/Logan676/seadroid/app/build.gradle' 行:20
*出了什么问题:
发生评估项目中的问题 ':应用程序'。
进程“命令'git的”完成与非零退出值128

所述的build.gradle文件是

buildscript { 
     repositories { 
      jcenter() 
     } 
     dependencies { 
      classpath 'com.android.tools.build:gradle:0.13.0' 
     } 
    } 
    apply plugin: 'com.android.application' 

    repositories { 
     jcenter() 
    } 

    /* 
    * Gets the version name from the latest Git tag 
    */ 
    def getVersionName = { -> 
     def stdout = new ByteArrayOutputStream() 
     exec { 
      // LINE 20 IS HERER!!!!!!!!!!!!! 
      commandLine 'git', 'describe', '--tags' 
      standardOutput = stdout 
     } 
     return stdout.toString().trim() 
    } 
    def getVersionCode = { -> 
     def stdout = new ByteArrayOutputStream() 
     exec { 
      commandLine 'git', 'rev-list', '--count', "HEAD" 
      standardOutput = stdout 
     } 
     return Integer.valueOf(stdout.toString().trim()) 
    } 


    dependencies { 
     compile 'com.android.support:support-v4:21.0.+' 
     compile 'com.actionbarsherlock:actionbarsherlock:[email protected]' 
     compile 'com.inkapplications.viewpageindicator:library:2.4.3' 
     compile 'com.github.kevinsawicki:http-request:5.6' 
     compile 'commons-io:commons-io:2.4' 
     compile 'com.google.guava:guava:18.0' 
     compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.3' 
     compile project(':libraries:NewQuickAction') 
     compile project(':libraries:MarkdownView') 
     compile project(':libraries:PullToRefresh') 
    } 

    android { 
     compileSdkVersion rootProject.ext.compileSdkVersion 
     buildToolsVersion rootProject.ext.buildToolsVersion 

     defaultConfig { 
      minSdkVersion rootProject.ext.minSdkVersion 
      targetSdkVersion rootProject.ext.targetSdkVersion 
      versionCode getVersionCode() 
      versionName getVersionName() 
     } 

     lintOptions { 
      abortOnError false 
     } 

     signingConfigs { 
      release { 
       // Signing code for manual signing 
       //storeFile file(System.console().readLine("\n\$ Enter keystore path: ")) 
       //storePassword System.console().readPassword("\n\$ Enter keystore  password: ").toString() 
       //keyAlias System.console().readLine("\n\$ Enter key alias: ") 
       //keyPassword System.console().readPassword("\n\$ Enter key password: ").toString() 
      } 
     } 

     buildTypes { 
      release { 
       //signingConfig signingConfigs.release 
       runProguard true 
       proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt' 
      } 
     } 
    } 

我想这引起未安装GIT中的错误。但我不知道如何解决它。也许它需要一些脚本来自动安装git。所以任何人都可以帮助我修改Gradle文件,如上所示。

+0

检查https://confluence.atlassian.com/display/FISHKB/Non-zero+exit+code%3A+128+Error+executing+command% 3A +无法+ +找到+远程+助手+ + http – 2014-11-24 08:54:02

+0

你有没有发现这个问题的任何修复? – 2016-03-31 12:09:33

回答

0

我赶上修订在代码的git命令的输出版本属性(代码通用的Unix /第一EXEC /和Windows /秒的exec /,命令混帐必须从控制台工作)

def os = System.getProperty("os.name").toLowerCase() 
def revision = new ByteArrayOutputStream() 
if (!os.contains("windows")) { 
    exec { 
     executable "/bin/sh" 
     args "-c", "echo -n `git rev-list HEAD | wc -l | sed 's/^[ ^t]*//'`" 
     standardOutput = revision; 
    } 
} else { 
    exec { 
     executable "cmd" 
     args "/c", "git rev-list HEAD | find /c /v \"\"" 
     standardOutput = revision; 
    } 
    revision = revision as String 
    revision = revision.trim() 
}; 

您可以更改代码需要你。

0

同样的错误也发生在我身上。

在以前的build.gradle类似的代码

exec { 
     commandLine 'git', 'describe', '--tags' 
    } 

然后我'git'

前加入'cmd'和错误了。

下面

是码加法的代码之后

exec { 
     commandLine 'cmd', 'git', 'describe', '--tags' 

    } 
相关问题