You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio生成APK时出现LiveData$1.class重复条目错误求助

解决Android打包时的JarMerging重复类错误(LiveData$1.class)

嘿,这个问题我之前帮同事踩过坑!更新到Support Library 27.1.0后出现这个duplicate entry错误,核心原因是依赖冲突——你的项目里同时存在多个包含android.arch.lifecycle.LiveData类的依赖包。

为什么会出现这个问题?

从Android Support Library 26.x版本开始,官方把Architecture Components的核心类(比如LiveData、ViewModel)整合进了support库中。当你升级到27.1.0后,如果项目里还单独引入了旧版的android.arch.lifecycle系列依赖,就会导致同一个类被多次打包,Jar合并时就触发了ZipException。

一步步解决方法:

  • 第一步:排查重复依赖
    先执行Gradle命令查看项目的依赖树,找出重复的lifecycle依赖:

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

    在输出结果里搜索lifecycle,看看有没有同时出现不同版本的android.arch.lifecycle:runtime或者和support库重复的条目。

  • 第二步:排除重复依赖
    如果发现某个第三方库或自定义模块引入了多余的lifecycle依赖,在对应的依赖声明里添加排除规则:

    implementation('com.example:your-third-party-lib:1.0.0') {
        exclude group: 'android.arch.lifecycle', module: 'runtime'
    }
    

    另外,如果你之前单独引入了android.arch.lifecycle:runtime或android.arch.lifecycle:extensions,可以尝试直接移除它们——因为27.1.0的appcompat-v7已经包含了基础的LiveData类。

  • 第三步:强制统一依赖版本
    如果排查起来麻烦,可以在项目根目录的build.gradle里添加强制配置,让所有lifecycle相关依赖统一用同一个版本(选择和27.1.0匹配的版本,比如1.1.1):

    allprojects {
        configurations.all {
            resolutionStrategy {
                force 'android.arch.lifecycle:runtime:1.1.1'
                force 'android.arch.lifecycle:extensions:1.1.1'
            }
        }
    }
    
  • 第四步:清理缓存重新打包
    最后执行清理命令,清除Gradle缓存后再尝试打包:

    ./gradlew clean assembleRelease
    

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:06:17