异常具体描述:
ProgressException: org.gradle.process.internal.ExecException:Progress 'command' d:\Java\jdk1.7\bin\java.exe finished with non-zero exit value 2
通常此类异常一般由两种原因造成的:
1、重复引入jar包。比如说,你在app这个module的 .gradle中有这句话:compile ‘com.android.support::supprot-v4:23.0.1’。然而在你引入的其他的module 或者是library中,他们也引入了 support-v4包,就会报这样的错误。
解决方案:
1、可以自己手动删除一个引用。
2、在 app的 .gradle中,对可能会出现重复引用或者以出现重复引用的jar包,使用下面的 compile 语句
compile ('com.android.support:supprot-v4:23.0.1'){
exclude group: 'com.android.support', module: 'support-v4'
}
这句话也忽略了 在不同地方,引入相同包的不同版本的问题
2、重复引入工具类,和上面的问题类似。比如说,阿里团队写了一个开源的工具类,非常好使,然后有一个开发sdk的公司用到了,并把这些工具类封装到了自己的jar包中给用户使用。然后你又正好用了阿里的一些sdk,里面也有此工具类。这时候,在编译的时候也会出现这种问题,少见,也非常难解决。
解决方案:首先你可以去问 客服,你把问题给他们描述清楚,他们就懂了,看能否给你重新提供一个不会冲突的jar包。若不行,只能自己解压jar包,抽出冲突类,再打包。。
3、multidex的问题,dex超出方法数的限制问题。在你的应用中(一般是因为引入了很多的第三方jar包导致的) dex文件方法数超过了最大值 65536的上限。至于什么是 multiDex、什么是dex文件,这些都可以自行百度,都有的。
解决方案:
在defaultConfig 中加入一句话: multiDexEnabled true
完美解决。谷歌也意识到了这个问题,所以引出了 android-support-multidex 包,用来解决这种问题。官方文档上也有关于解决此问题的的介绍。
其他地方也有许多的解决方案,我看了, 都挺复杂的,我这种方法,实测,好使!!(我的环境:.gradle2-4, AS 1.4,minAPI 16,compileAPI 23 )