项目中引入了很多第三方的jar,今天又添加友盟的数据统计umsdk_Android_analytics_v5.6.4.jar,运行的时候报错:Error:Execution failed for task ':app:dexAbiallDebug'.
> com.Android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_73\bin\java.exe'' finished with non-zero exit value 3
我第一反应就是导入的jar包有重复,所以立马检查项目中其他jar包,并没有什么发现。就在这时,突然想起前两天一哥们跟我说项目中环信聊天有用到友盟的推送功能(当时我还说环信自己有socket,为什么还要用友盟的),于是我觉得可能是友盟的jar包冲突了,于是我就开始走上了一条不归路了。我找到了友盟的技术支持,问了一堆关于jar包冲突的问题,最后我终于明白他的意思了:友盟的错误分析包(友盟有很对针对性的产品)可能会和环信包冲突,数据统计包是不会冲突的;至于真的有冲突了,那他也没法解决。
我有点懵了,项目卡在这了也不是事啊,于是我各种搜索,友盟论坛、jar包冲突等等。终于发现了光明:http://stackoverflow.com/questions/29756188/java-finished-with-non-zero-exit-value-2-android-gradle 以及http://stackoverflow.com/questions/30483827/android-studio-java-exe-finished-with-non-zero-exit-value-3
原来是增加jar包后gradle的空间不足,运行失败。这时候只需要增加空间就搞定了。
android {
dexOptions {
javaMaxHeapSize "4g"
}
}