问题描述
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 } ... }