com.android.dex.DexException finished with non-zero exit value 2 等异常解决办法思路

来源:互联网 发布:淘宝一件代发好做吗 编辑:程序博客网 时间:2024/06/05 11:58

一、前言

错误类型

<pre name="code" class="java">Error:Gradle: Execution failed for task ':app:dexDebug'.> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/local/java/jdk1.8.0_25/bin/java'' finished with non-zero exit value 2


Android Studio com.android.dex.DexException: Multiple dex files define


一般这样的错误会一起出现,确实很纠结,但是出现这样的错误大部分是你的引用的jar重复了!遇到这样的错误千万别慌,大概的解决办法就是删除重复的jar,这种错误会一般引用其他的jarlib当中跟你的项目引用了一样的jar

二、解决办法

1:仔细检查项目跟引用的lib中是否引用了统一的jar,如果引用直接删除其中一个重复的jar或者把AS中的build.gradle改成这样


2:这是我遇到的比较奇葩的状况,写下来,我是这样的我写的是一个项目,引用了一个谷歌的jar,但是我想项目中的一些东西拿出来当成lib用,我拿出的这些东西用到了谷歌的jar,我就需要把项目中的那个谷歌的jar删除掉,在lib项目中引用即可,这样看起来,确实没有重复,但是奇葩的状况出现了,AS还会给我报说jar重复的错误,挺郁闷,完全就是不重复

后来终于知道原因 原来是下面这个东西惹的祸


因为我还准备抽出部分代码当成lib的时候, AS会把引用的jar build到这里面。当你把一些代码抽出来当lib的时候,你确实是把项目的引用谷歌的jar删除了,但是这里面却没有删除,而当你的lib引用谷歌的jar的时候,也会在这里build一个,确实你只引用了一个jar,但是项目跟lib这里面都会有这个jar.

解决办法就是直接删除这个文件夹,直接重新编译。编译后,AS就不会把你的项目那个删除的jar build到这里面来,这样你的项目中就只有一个jar,就不会再重复了

三、反思

反正遇到这样的错误,肯定是jar重复了,你只要用心就查找,肯定会找到这个隐藏背后的魔鬼的









0 0
原创粉丝点击