Cannot create android app from an archive...containing both DEX and Java-bytecode content

本文详细解析了在构建Android应用时遇到的MultiDex错误,包括错误的原因分析及解决方案。介绍了如何在build.gradle中正确配置MultiDex,并调整minSdkVersion以确保应用兼容性。

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

问题描述

D8: Cannot create android app from an archive 'C:\Users\ado\.gradle\caches\transforms-2\files-2.1\3aa879f694b1137d653976ac38fcf06f\xxx\jars\classes.jar' containing both DEX and Java-bytecode content

FAILURE: Build failed with an exception.

* What went wrong:
  Execution failed for task ':app:multiDexListDebug'.

> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
> Error while merging dex archives: 

原因分析

看错误提示是跟multidex有关,先检查项目Android项目是否有开启multiDexEnabled,是否添加了multidex的库。

解决方案

编辑android目录下的app\build.gradle

android {
    defaultConfig {
        ...
        //开启MultiDex
        multiDexEnabled true
    }
    ...
}
dependencies {
  ...
  //非Androidx项目的依赖
  implementation 'com.android.support:multidex:1.0.3'
  //如果是Androidx项目,使用下面的
  implementation 'androidx.multidex:multidex:2.0.1'
}

如果做了以上的配置,还是出错,一般都是minSdkVersion的问题。

Flutter最低支持Android 4.1,所以默认创建的Android项目最小版本为16,但是5.0后使用的是ART运行时,本身就是支持multidex的。将miniSdkVersion改为21即可。

android {
    defaultConfig {
        ...
        //minSdkVersion 16
        minSdkVersion 21
        targetSdkVersion 28
        multiDexEnabled true
    }
    ...
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值