【Android Exception】internal.ExecException:/bin/java''finished with non-zero exit value2

今天在写程序时,突然遇到一个问题,找了我一天才知道解决办法。一开始以为自己的程序错了,后来发现是应用中的Dex 文件方法数超过了最大值65581的上限,简单来说,应用爆棚了。

Error:Execution failed for task ':app:dex_360Debug'.

> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2

错误信息如下:

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexIndexOverflowException: Cannot merge new index 65581 into a non-jumbo instruction!
	at com.android.dx.merge.InstructionTransformer.jumboCheck(InstructionTransformer.java:109)
	at com.android.dx.merge.InstructionTransformer.access$800(InstructionTransformer.java:26)
	at com.android.dx.merge.InstructionTransformer$StringVisitor.visit(InstructionTransformer.java:72)
	at com.android.dx.io.CodeReader.callVisit(CodeReader.java:114)
	at com.android.dx.io.CodeReader.visitAll(CodeReader.java:89)
	at com.android.dx.merge.InstructionTransformer.transform(InstructionTransformer.java:49)
	at com.android.dx.merge.DexMerger.transformCode(DexMerger.java:842)
	at com.android.dx.merge.DexMerger.transformMethods(DexMerger.java:813)
	at com.android.dx.merge.DexMerger.transformClassData(DexMerger.java:785)
	at com.android.dx.merge.DexMerger.transformClassDef(DexMerger.java:682)
	at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:542)
	at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
	at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
	at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
	at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)
	at com.android.dx.command.dexer.Main.run(Main.java:246)
	at com.android.dx.command.dexer.Main.main(Main.java:215)
	at com.android.dx.command.Main.main(Main.java:106)
Error:Execution failed for task ':app:dex_360Debug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2

在网上找了很久答案,很多说是jar包重复,我只是加了几个Activity和xml,应该不是。

在网上看到一段话:

This issue is quite possibly due to exceeding the 65K methods dex limit imposed by Android. This problem can be solved either by cleaning the project, and removing some unused libraries and methods from dependencies in build.gradle, OR by adding multidex support.

So, If you have to keep libraries and methods, then you can enable multi dex support by declaring it in the gradle config.

defaultConfig {        
    // Enabling multidex support.
    multiDexEnabled true
}
因此,在build:gradle上加入multiDexEnabled true 即可。


原创:http://blog.youkuaiyun.com/lovekam/article/details/50525169

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值