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

问题描述

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
    }
    ...
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
这个错误通常出现在JUnit测试中,表示测试没有抛出预期的异常。在本例中,测试期望抛出一个android.os.RemoteException,并且异常消息中包含"RemoteException"字符串。 如果您遇到这个错误,可以尝试以下方法来解决问题: 1. 确保您的测试代码中包含了期望抛出异常的代码,并且异常确实被抛出了。如果您的代码没有抛出期望的异常,那么测试就会失败。 2. 确保您的测试代码中使用了正确的异常类型和异常消息。如果您期望抛出android.os.RemoteException,并且异常消息中包含"RemoteException"字符串,那么您的测试代码应该类似于下面的代码: ```java @Test(expected = RemoteException.class) public void testSomeMethod() throws RemoteException { // Some code that throws a RemoteException... throw new RemoteException("RemoteException occurred."); } ``` 在这个示例代码中,我们使用`@Test(expected = RemoteException.class)`注解来告诉JUnit测试我们期望抛出一个RemoteException异常。然后,我们在测试方法中抛出了一个带有异常消息的RemoteException异常。 3. 检查您的代码是否正确处理了异常。如果您的代码在抛出异常后没有正确处理它,那么测试就会失败。在这种情况下,您需要检查并修复代码中的错误。 总之,要解决这个错误,您需要仔细检查您的测试代码和被测试代码,确保它们正确处理异常,并使用正确的异常类型和异常消息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值