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

构建Release包时遇Duplicate class a.a冲突问题求助

Android Release构建重复类冲突解决方案

问题说明

构建Release版本时触发以下错误:

Duplicate class a.a found in modules jetified-android-sdk-1.7.26-runtime (com.cashfree.pg:android-sdk:1.7.26) and jetified-adsdk-AN-1.15.16-runtime (adsdk-AN-1.15.16.aar)

对应的App级build.gradle配置片段:

implementation 'com.cashfree.pg:android-sdk:1.7.26'
implementation files('libs/adsdk-AN-1.15.16.aar')

//Dependencies used by all payment modes
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.android.volley:volley:1.1.1'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'

关于a.a的解释:这是因为两个库在Release构建阶段开启了代码混淆,原本的类名被混淆工具压缩成了a.a这类极简名称,巧合的是两个库中都有类被混淆成了这个名字,最终导致重复类冲突。

解决办法

1. 排除重复依赖模块

先通过Gradle命令查看完整依赖树,定位重复类所属的具体模块:

./gradlew app:dependencies

找到冲突模块后,在依赖声明中排除该模块。比如发现Cashfree SDK包含了和aar重复的模块,修改依赖为:

implementation ('com.cashfree.pg:android-sdk:1.7.26') {
    exclude group: '冲突模块的group名', module: '冲突模块的name名'
}

如果暂时无法定位具体模块,也可以临时尝试直接排除冲突类(不推荐长期使用,可能引发其他运行时问题):

android {
    packagingOptions {
        exclude 'a/a.class'
    }
}

2. 避免二次混淆已混淆的库

如果引入的aar包本身已经是混淆过的成品,可以在混淆规则文件proguard-rules.pro中添加规则,不对该库的类进行二次混淆:

-keep class com.adsdk.actual.package.** { *; }

(需要替换成aar包实际的包名,可通过解压aar文件查看内部目录结构获取)

3. 升级库版本尝试解决

尝试将Cashfree SDK或广告SDK升级到最新稳定版本,新版本可能修复了混淆导致的类名碰撞问题。例如升级Cashfree SDK:

implementation 'com.cashfree.pg:android-sdk:最新稳定版本号'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 13:45:28