导入HyperPay SDK 4.6.0出现重复类错误,求解决方案
解决HyperPay SDK 4.6.0添加后重复类冲突问题
问题原因
报错显示ipworks3ds_sdk.aar和oppwa.mobile.aar两个模块包含重复的nts包下混淆类,Jetifier配置未处理这类特殊字符命名的重复类,导致编译冲突。
解决方案
1. 依赖排除(优先推荐)
在Module级别的build.gradle中,给HyperPay SDK的依赖添加排除规则,移除其中一个冲突模块:
implementation(name: 'hyperpay-sdk-4.6.0', ext: 'aar') { // 根据实际功能验证,排除其中一个冲突模块 exclude group: 'com.oppwa.mobile', module: 'oppwa.mobile' // 若排除上面的无效,可尝试排除另一个 // exclude group: 'com.nsoftware.ipworks3ds', module: 'ipworks3ds_sdk' }
注意:排除前需确认HyperPay SDK核心功能依赖哪个模块,避免排除后导致功能缺失。
2. 手动修改冲突AAR
如果依赖排除无效,可手动删除其中一个AAR里的重复类:
- 将冲突的AAR(如
ipworks3ds_sdk.aar)重命名为.zip格式并解压 - 解压其中的
classes.jar,找到nts目录,删除报错的重复类文件(ㇸ.class、ㇹ.class、ㇽ.class、ㇾ.class) - 重新打包
classes.jar,替换原AAR中的对应文件,再将文件夹重新打包为.aar格式 - 用修改后的AAR替换项目中的原文件
3. 检查依赖树定位冲突来源
执行以下命令生成依赖树,确认是否有其他依赖间接引入了冲突模块:
# Mac/Linux ./gradlew app:dependencies # Windows gradlew.bat app:dependencies
若发现其他依赖也引入了这两个模块,在对应依赖项中同样添加排除规则。
4. 禁用Jetifier对特定模块的处理(可选)
在gradle.properties中添加配置,让Jetifier跳过处理这两个冲突AAR:
android.jetifier.blacklist=ipworks3ds_sdk.aar,oppwa.mobile.aar
此方法需确保两个AAR本身已兼容AndroidX,否则可能引发其他兼容性问题。
内容的提问来源于stack exchange,提问作者Amir Hamza
相关产品推荐
相关产品推荐

