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

Android Studio出现Unable to merge dex错误,求有效解决方法

解决Android Studio中「Unable to merge dex」问题(Parse LiveQuery依赖引入后)

我之前在引入Parse相关依赖时也踩过这个Dex合并的坑,结合你的情况,已经试过clean、rebuild和开启multidex还没解决,大概率是依赖版本冲突导致的——尤其是你最后加的com.github.tgio:parse-livequery:1.0.3,很可能和你现有依赖里的Parse或者Support库版本不一致,造成重复类打包。

给你几个针对性的解决步骤:

1. 先排查依赖冲突

首先用Gradle命令查看完整的依赖树,找出重复或版本不一致的库:

  • 如果你是Mac/Linux,在项目根目录终端执行:
    ./gradlew app:dependencies
    
  • Windows用户执行:
    gradlew.bat app:dependencies
    

重点看parse-android和Android Support相关库(比如appcompat-v7、support-v4),看看有没有多个版本同时存在——比如parse-livequery可能自带了旧版本的Parse SDK或者Support库,和你用的com.parse:parse-android:1.16.7、26.1.0版本的Support库冲突。

2. 排除冲突的依赖

如果发现冲突,就在parse-livequery的依赖声明里排除掉冲突的模块。比如假设它自带了旧的Parse SDK和Support库,修改你的dependencies部分:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    implementation 'com.android.support:support-v4:26.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
    implementation 'com.parse:parse-android:1.16.7'
    implementation 'com.android.support:design:26.1.0'
    // 排除冲突的依赖
    implementation('com.github.tgio:parse-livequery:1.0.3') {
        exclude group: 'com.parse', module: 'parse-android' // 排除自带的Parse SDK
        exclude group: 'com.android.support', module: 'appcompat-v7' // 排除自带的Support库
        exclude group: 'com.android.support', module: 'support-v4'
    }
}

3. 彻底清理缓存

有时候光clean/rebuild不够,得清理Gradle和Android Studio的缓存:

  • 删除项目根目录下的.gradle文件夹
  • 打开Android Studio,点击File -> Invalidate Caches...,选择Invalidate and Restart

4. 确认Multidex配置完全生效

虽然你已经开了multiDexEnabled true,但还要确保Application类正确配置:

  • 如果你的项目没有自定义Application类,在AndroidManifest.xml里把application的name改成android.support.multidex.MultiDexApplication:
    <application
        android:name="android.support.multidex.MultiDexApplication"
        ...>
    </application>
    
  • 如果有自定义Application类,让它继承MultiDexApplication,或者在attachBaseContext方法里添加:
    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }
    

按这个流程走一遍,应该就能解决Dex合并的问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:46:35