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

添加图片选择库Matisse后App编译报错求助

解决Matisse库导致的Dex合并重复错误

我之前也碰到过几乎一模一样的问题!当时折腾了好一阵才搞定,给你几个我亲测有效的方案试试:

  • 排查并解决依赖冲突
    Matisse内部依赖的库很可能和你项目里已有的库重复了(比如Android Support库、Glide这类常用依赖),这是最常见的原因。你可以先执行这个命令查看项目的完整依赖树:

    ./gradlew app:dependencies
    

    仔细找一找有没有相同group和module但版本不同,或者完全重复的依赖项。比如如果发现Matisse自带的support-v4和你项目里的版本冲突,就可以在引入Matisse的时候排除重复依赖:

    implementation('com.zhihu.android:matisse:0.5.2') {
        exclude group: 'com.android.support', module: 'support-v4'
        exclude group: 'com.android.support', module: 'appcompat-v7'
    }
    
  • 启用MultiDex支持
    加入Matisse后,项目的方法数可能突破了65536的限制,这时候必须开启MultiDex。在你的app/build.gradle里做以下配置:

    android {
        defaultConfig {
            // 其他配置...
            multiDexEnabled true
        }
    }
    
    dependencies {
        // 引入MultiDex依赖
        implementation 'com.android.support:multidex:1.0.3'
    }
    

    如果你有自定义的Application类,记得让它继承MultiDexApplication;如果没法继承,就在attachBaseContext方法里手动初始化:

    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }
    
  • 清理Gradle缓存并重新构建
    有时候Gradle的缓存会残留旧的依赖文件,导致奇怪的合并错误。你可以先执行清理命令:

    ./gradlew clean
    

    然后重新编译项目,或者直接在Android Studio里点击File -> Invalidate Caches / Restart...,彻底清空缓存后再试。

  • 检查Matisse版本与AndroidX兼容性
    如果你项目用的是AndroidX,要确保你用的Matisse版本支持AndroidX,或者开启Jetifier自动转换旧的Support库。在gradle.properties里添加:

    android.useAndroidX=true
    android.enableJetifier=true
    

    另外,尽量使用稳定版的Matisse,避免用beta版本(比如0.5.3-beta3这类),不稳定版本可能自带一些依赖问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:10:31