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

Android项目中Bouncy Castle重复类错误排查及解决

Android项目Bouncy Castle重复类错误解决记录

在Android项目中持续遭遇Bouncy Castle重复类冲突错误,最初尝试在app/build.gradle中添加以下配置,但未能解决问题:

android {
    configurations {
        all*.exclude module: 'bcprov-jdk15on'
        all*.exclude module: 'bcutil-jdk15on'
    }
}

环境信息

  • Gradle JDK:Jbr 17.0.9
  • Gradle版本:
    gradle-7.5-bin
    
  • Android插件版本:
    id 'com.android.application' version '7.4.2' apply false
    id 'com.android.library' version '7.4.2' apply false
    
  • 引入的Bouncy Castle依赖:
    implementation 'org.bouncycastle:bcpkix-jdk15to18:1.77'
    implementation 'org.bouncycastle:bcprov-jdk15to18:1.77'
    

具体错误信息

编译时出现大量重复类错误,核心示例如下:

Duplicate class org.bouncycastle.x509.PKIXCRLUtil found in modules jetified-bcprov-jdk15to18-1.77 (org.bouncycastle:bcprov-jdk15to18:1.77) and jetified-bcprov-jdk18on-1.77 (org.bouncycastle:bcprov-jdk18on:1.77)
Duplicate class org.bouncycastle.x509.PKIXCertPathReviewer found in modules jetified-bcprov-jdk15to18-1.77 (org.bouncycastle:bcprov-jdk15to18:1.77) and jetified-bcprov-jdk18on-1.77 (org.bouncycastle:bcprov-jdk18on:1.77)
Duplicate class org.bouncycastle.x509.X509Attribute found in modules jetified-bcprov-jdk15to18-1.77 (org.bouncycastle:bcprov-jdk15to18:1.77) and jetified-bcprov-jdk18on-1.77 (org.bouncycastle:bcprov-jdk18on:1.77)
Duplicate class org.bouncycastle.x509.X509AttributeCertStoreSelector found in modules jetified-bcprov-jdk15to18-1.77 (org.bouncycastle:bcprov-jdk15to18:1.77) and jetified-bcprov-jdk18on-1.77 (org.bouncycastle:bcprov-jdk18on:1.77)
Duplicate class org.bouncycastle.x509.X509AttributeCertificate found in modules jetified-bcprov-jdk15to18-1.77 (org.bouncycastle:bcprov-jdk15to18:1.77) and jetified-bcprov-jdk18on-1.77 (org.bouncycastle:bcprov-jdk18on:1.77)
Duplicate class org.bouncycastle.x509.X509CRLStoreSelector found in modules jetified-bcprov-jdk15to18-1.77 (org.bouncycastle:bcprov-jdk15to18:1.77) and jetified-bcprov-jdk18on-1.77 (org.bouncycastle:bcprov-jdk18on:1.77)
Duplicate class org.bouncycastle.x509.X509CertPairStoreSelector found in modules jetified-bcprov-jdk15to18-1.77 (org.bouncycastle:bcprov-jdk15to18:1.77) and jetified-bcprov-jdk18on-1.77 (org.bouncycastle:bcprov-jdk18on:1.77)
Duplicate class org.bouncycastle.x509.X509CertStoreSelector found in modules jetified-bcprov-jdk15to18-1.77 (org.bouncycastle:bcprov-jdk15to18:1.77) and jetified-bcprov-jdk18on-1.77 (org.bouncycastle:bcprov-jdk18on:1.77)
Duplicate class org.bouncycastle.x509.X509CertificatePair found in modules jetified-bcprov-jdk15to18-1.77 (org.bouncycastle:bcprov-jdk15to18:1.77) and jetified-bcprov-jdk18on-1.77 (org.bouncycastle:bcprov-jdk18on:1.77)
Duplicate class org.bouncycastle.x509.X509CollectionStoreParameters found in modules jetified-bcprov-jdk15to18-1.77 (org.bouncycastle:bcprov-jdk15to18:1.77) and jetified-bcprov-jdk18on-1.77 (org.bouncycastle:bcprov-jdk18on:1.77)

最终解决方案

通过在app/build.gradle中添加以下配置,覆盖所有冲突的Bouncy Castle模块,成功解决重复类问题:

configurations {
    all*.exclude module: 'bcprov-jdk15to18'
    all*.exclude module: 'bcutil-jdk18on'
    all*.exclude module: 'bcprov-jdk15on'
    all*.exclude module: 'bcutil-jdk15on'
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 20:00:20