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

求助:构建应用时出现Multiple Dex files define Landroid/arch/lifecycle/LiveData$1错误

解决「Multiple dex files define Landroid/arch/lifecycle/LiveData$1」错误

兄弟,我太懂这个报错的糟心了!你碰到的这个Error:Execution failed for task ':app:transformClassesWithDexForDebug',核心原因就是重复引入了LiveData相关的类,编译的时候生成了多个一模一样的Landroid/arch/lifecycle/LiveData$1文件,Dex合并阶段就直接冲突报错了。下面给你几个靠谱的解决办法:

  • 检查并统一Lifecycle依赖版本
    先去你的app级build.gradle里看看,是不是同时引入了不同版本的Lifecycle库?比如一边用了AndroidX的androidx.lifecycle:lifecycle-livedata,另一边又通过第三方库间接依赖了旧版的android.arch.lifecycle:livedata?
    你可以在终端执行这条命令查看完整的依赖树,找出所有和Lifecycle相关的依赖:

    ./gradlew app:dependencies
    

    找到后把所有Lifecycle相关依赖的版本统一成同一个,比如都用AndroidX的最新稳定版:

    implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.6.2'
    implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2'
    

    如果是第三方库偷偷引入了旧版本,就用exclude把重复的依赖排除掉:

    implementation('你的第三方库坐标') {
        exclude group: 'android.arch.lifecycle', module: 'livedata'
    }
    
  • 开启MultiDex(针对方法数超标的情况)
    要是你的应用方法总数超过了64k的Dex限制,也可能触发这类冲突(不过更常见的还是重复依赖)。如果确认是方法数问题,按下面步骤开启MultiDex:

    1. 先添加MultiDex的依赖:
    implementation 'androidx.multidex:multidex:2.0.1'
    
    1. 在build.gradle的defaultConfig里开启开关:
    android {
        defaultConfig {
            // 其他配置...
            multiDexEnabled true
        }
    }
    
    1. 如果你的App有自定义Application类,让它继承MultiDexApplication;要是没法改继承关系,就在attachBaseContext方法里调用MultiDex.install(this)。
  • 清理缓存后重新编译
    有时候项目缓存里的旧文件也会搞出这种乌龙,试试这几步:

    • 点击Android Studio顶部菜单的Build > Clean Project
    • 接着执行Build > Rebuild Project
    • 要是还不行,直接删掉项目根目录下的.gradle文件夹和app/build文件夹,然后重新同步项目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:03:03