Android依赖冲突:xrpl-core与bitcoinj引入重复bouncycastle类报错
解决Android中xrpl-core与bitcoinj的BouncyCastle依赖冲突问题

我在Android应用中同时使用xrpl-core和bitcoinj库,两者均依赖bouncycastle 1.72版本,但构建时出现截图中的错误。尝试从xrpl4j-core中排除bcprov-jdk18on依赖后,问题仍未解决。
当前依赖配置如下:
dependencies { implementation 'com.android.support:multidex:1.0.3' implementation 'org.bitcoinj:bitcoinj-core:0.17-alpha1' implementation('org.xrpl:xrpl4j-core:3.0.1') { exclude group: 'bcprov-jdk18on', module: 'library' } }
解决方案
1. 强制统一BouncyCastle版本
在gradle配置中添加版本强制策略,确保所有依赖使用同一版本的BouncyCastle模块:
configurations.all { resolutionStrategy { force 'org.bouncycastle:bcprov-jdk18on:1.72' force 'org.bouncycastle:bcpkix-jdk18on:1.72' } }
2. 排查所有冲突的BouncyCastle模块
除了bcprov-jdk18on,bitcoinj可能还依赖bcpkix-jdk18on等其他BouncyCastle模块,仅排除单个模块无法解决全部冲突,通过版本强制可以一次性覆盖所有相关依赖。
3. 适配Android系统自带的BouncyCastle
Android系统内置了旧版本的BouncyCastle,可能与引入的新版本冲突,可在自定义Application类中替换安全提供者:
public class MyApplication extends Application { static { Security.removeProvider("BC"); Security.insertProviderAt(new org.bouncycastle.jce.provider.BouncyCastleProvider(), 1); } @Override public void onCreate() { super.onCreate(); // 其他初始化逻辑 } }
内容的提问来源于stack exchange,提问作者Mohamadamin
相关产品推荐
相关产品推荐

