Unable to merge dex

首先异常信息是这样的


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

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

从最后一句字面意思翻译来看是,无法合并,当时没想太多,以为是引入依赖的第三方包有重复的,所以不能合并,但是当我检查里所有的引入的第三方包后发现,没有重复的,所以我就想到Clean一下,但是不管我怎么Clean怎么Rebuild项目都没有效果,这时心已凉,然后就想到用分包试试看看可不可以

defaultConfig {
        applicationId "com.xxx.xxx.xxx"
        minSdkVersion 16
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
implementation 'com.android.support:multidex:1.0.2'
@Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }

果然,异常变了!


从异常上看应该是由于classes.jar这个包导致了V4无法合并,用Ctrl+H找到了这个classes.jar所属的第三方依赖,但是又不能删了这个依赖,这就尴尬了,于是我想到了V4包的去重,但是如果项目引入的第三方依赖太多的话,一个个都去重又显得很麻烦,所以我用到了一个全部去重的方法

configurations {
        all*.exclude group: 'com.android.support', module: 'support-v4'
    }
这样一试,果然项目正常跑起来了
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值