2014-04-03 38 views
3

我想在我们的Debian构建服务器上用gradlew构建一个Android项目。Android gradle构建脚本返回错误137在preDexDebug

每次运行它时,构建都会在preDexDebug步骤中出现错误137,并出现以下错误。我尝试了stacktrace,但是这并没有给我任何更多的信息,除了它是一个未处理的异常。在控制台中,我可以看到preDexDebug构建步骤的失败率为39%。

:Carpool:preDexDebug FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':Carpool:preDexDebug'. 
> com.android.ide.common.internal.LoggedErrorException: Failed to run command: 
     /opt/android-sdk-linux/build-tools/19.0.3/dx --dex --output /var/lib/jenkins/jobs/Project/workspace/com.app.space/Carpool/build/pre-dexed/debug/classes-c1baba1a2bb3528538a151852945d1f7047c7393.jar /var/lib/jenkins/jobs/Project/workspace/com.app.space/Carpool/build/exploded-aar/com.google.android.gms/play-services/4.0.30/classes.jar 
    Error Code: 
     137 

构建脚本:

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.9.+' 
    } 
} 
apply plugin: 'android' 

repositories { 
    mavenCentral() 
} 

android { 
    compileSdkVersion 19 
    buildToolsVersion "19.0.3" 

    defaultConfig { 
     minSdkVersion 10 
     targetSdkVersion 19 
    } 

    compileOptions { 
     sourceCompatibility JavaVersion.VERSION_1_7 
     targetCompatibility JavaVersion.VERSION_1_7 
    } 
} 

dependencies { 
    compile 'com.android.support:support-v4:19.1.0' 
    compile 'com.android.support:gridlayout-v7:19.1.0' 
    compile 'com.android.support:appcompat-v7:19.1.0' 
    compile 'com.google.android.gms:play-services:4.0.30' 
} 

对这个问题,解决方法或其他检查,我可以做的原因任何想法?

回答

6

问题是由于构建服务器上的内存问题。切换到具有更多内存的构建服务器已解决该问题。

+0

你有多少内存?我在Ubuntu上使用512Mb内存的'play-services' jar有同样的问题。 – eleven

+0

我有512Mb,然后切换到1024MB(仍然有问题,现在我有4GB内存,它工作正常 –

+0

我不得不承认,即使它是4GB我有一些问题,由于交换文件不够大,但改变这些问题再次解决了这个问题 –

0

是的,我遇到了这个问题。我发现问题是由于配置内存错误,dx.bat无法运行。将“set defaultXmx = -Xmx1024m”更改为“set defaultXmx = -Xmx512m”并再次运行。参考链接我发现它:https://code.google.com/p/vs-android/issues/detail?id=15。希望这个帮助。