You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Android应用运行报错:Duplicate zip entry问题求助

解决Android项目中simple-xml依赖冲突及多Dex写入错误

这种报错典型是依赖冲突导致的——你自己声明用simple-xml-2.3.4.jar,但项目里某个第三方依赖间接引入了simple-xml-2.7.1.jar,两个版本的库包含相同的类文件(比如org/simpleframework/xml/Attribute.class),打包时就会触发重复条目错误,进而引发多Dex的写入异常。

下面是具体的解决步骤:

  • 第一步:定位冲突来源
    打开终端,在项目根目录执行Gradle依赖分析命令:

    # Windows系统
    gradlew.bat app:dependencies
    
    # Mac/Linux系统
    ./gradlew app:dependencies
    

    在输出结果里搜索simple-xml,找到标注版本为2.7.1的依赖项,看它是被哪个第三方库带进来的。

  • 第二步:排除冲突依赖
    找到引入2.7.1版本的第三方库后,在你的app/build.gradle里给该依赖添加排除规则,比如发现是com.example:some-library:2.0.0引入的,就修改为:

    implementation('com.example:some-library:2.0.0') {
        // 排除该依赖带进来的simple-xml库
        exclude group: 'org.simpleframework', module: 'simple-xml'
    }
    

    如果多个依赖都引入了不同版本的simple-xml,也可以全局强制使用你需要的2.3.4版本:

    configurations.all {
        resolutionStrategy.force 'org.simpleframework:simple-xml:2.3.4'
    }
    
  • 第三步:清理并重建项目
    执行清理命令清除旧的构建缓存:

    # Windows
    gradlew.bat clean
    
    # Mac/Linux
    ./gradlew clean
    

    之后重新同步Gradle并构建项目,重复类的问题应该就能解决,多Dex的写入错误也会随之消失。

内容的提问来源于stack exchange,提问作者alfo888_ibg

火山引擎 最新活动