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
相关产品推荐
相关产品推荐

