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

Android Gradle依赖冲突:重复类排除无效,求解决方案

Android依赖重复类冲突解决办法

你之前尝试的exclude group: 'android.content.pm'无效,因为group参数对应的是Maven依赖的groupId(比如com.myapp.androidcommon),并非Java类的包名,所以无法排除重复的类文件。

以下是可行的解决方法:

方法1:通过packagingOptions直接排除重复类

在app模块的build.gradle(或build.gradle.kts)中添加packagingOptions配置,指定要排除的重复class文件:

android {
    packagingOptions {
        // 排除重复的类文件,路径用斜杠分隔
        exclude 'android/content/pm/IPackageStatsObserver.class'
        exclude 'android/content/pm/IPackageStatsObserver$Stub.class'
        exclude 'android/content/pm/IPackageStatsObserver$Stub$Proxy.class'
    }
}

选择排除其中一个依赖里的类即可,比如如果com.dependency:framework是第三方依赖,优先排除它里面的重复类,保留自己项目com.myapp.androidcommon里的实现。

方法2:分析依赖树,确认依赖来源并调整

先执行Gradle命令查看完整的依赖树,明确两个依赖的引入路径:

./gradlew app:dependencies

如果发现其中一个依赖是通过其他依赖传递引入的,可以直接排除该传递依赖:

implementation('xxx:xxx:1.0.0') {
    exclude group: 'com.dependency', module: 'framework'
}

如果两个都是直接引入的依赖,评估是否可以移除其中一个非必要的依赖,或者替换为无冲突的版本。

方法3:修改自有模块(如果是内部依赖)

如果com.myapp.androidcommon是你自己维护的模块,直接修改该模块的代码,移除android.content.pm.IPackageStatsObserver相关的重复类,避免打包到aar/jar中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 20:27:25