com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex 异常处理

我们在开发过程中避免不了会引入第三方或我们自己生成的jar包或库,本文就讲述一下,引入的一个异常处理。

异常:

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

> java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex

原因:

引入的jar包或库中包含的其他依赖,与原有项目中的依赖一致,导致重复引入,或两者的资源存在重叠(多jar包引入时,不同jar包名但相同packageId和类名、assets文件夹内的资源名称相同),导致异常产生。

解决:

办法 ①:

在项目的build.gradle文件中查看自己导入的依赖,看看是否有重复的,如果有的话删除掉,重新进行编译;检查自己生成jar包的源代码中的导入依赖是否与原有项目中依赖一致,如果一致选择删除原有项目相关依赖,改用新引入的jar包中的依赖,重新进行编译。

办法 ②:

使用Android项目方法数超过65535,解决办法进行处理。

谷歌官方推荐使用MultiDexApplication,具体步骤如下

Gradle 配置:

defaultConfig {   
       applicationId "XXX"
       minSdkVersion 14
       targetSdkVersion 23
       multiDexEnabled true
}
dependencies {
    compile 'com.android.support:multidex:1.0.3'
}

Application 类重写方法:

@Override
protected void attachBaseContext(Context base) {
   super.attachBaseContext(base);
   MultiDex.install(this);
}
或者直接让你的Application继承MultiDexApplication,就不需要再重写上述方法。
方法 ③ :

如果你的JDK版本是下图所示,将你的JDK版本更改为1.7。


以上就是解决这个异常的三种办法,由上而下逐个尝试,希望对大家有帮助!微笑


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chun_long/article/details/80693397
文章标签: 异常
个人分类: 异常
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭