处理 jdk finished with non-zero exit value 2 异常

本文分析了Gradle编译过程中出现ProgressException的原因,并提供了三种常见解决方案:避免重复引入依赖、排除冲突依赖及启用MultiDex支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

异常具体描述:

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 )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值