Android项目中Stripe Terminal与Adyen SDK重复类冲突的解决方法咨询
Android项目中Stripe Terminal与Adyen SDK重复类冲突的解决方法咨询
各位好,我在Android项目里同时集成Stripe Terminal SDK和Adyen POS SDK时遇到了构建冲突的问题,想请教大家有没有可行的解决思路。
我的项目依赖配置
目前的Gradle依赖配置如下:
debugImplementation 'com.adyen.ipp:pos-mobile-debug:1.5.1' implementation('com.stripe:stripeterminal-taptopay:4.4.0') { exclude group: 'com.google.android.material' } implementation 'com.stripe:stripeterminal-core:4.4.0'
补充说明:
stripeterminal-taptopay:4.4.0并非我业务代码直接调用的依赖,是Stripe Terminal SDK内部需要的组件- Adyen SDK当前使用的是debug版本
pos-mobile-debug:1.5.1
构建冲突问题
把Stripe SDK升级到4.4.0版本后,构建过程中触发了重复类的冲突错误,具体提示如下:
Duplicate class ca.amadis.agnos.BuildConfig found in modules: - kernel-debug-3.7.4.jar (com.adyen.ipp.tools:kernel-debug:3.7.4) - stripeterminal-taptopay-4.4.0.aar (com.stripe:stripeterminal-taptopay:4.4.0)
看起来Stripe和Adyen的SDK都包含了ca.amadis.agnos包下的相同类,导致构建时类路径冲突。
已尝试但不可行的方案
我一开始想通过排除Adyen依赖中的kernel-debug来规避冲突:
debugImplementation('com.adyen.ipp:pos-mobile-debug:1.5.1') { exclude group: 'com.adyen.ipp.tools', module: 'kernel-debug' }
但这么做会直接导致Adyen SDK功能失效,因为kernel-debug是Adyen SDK内部运行必须的依赖,无法移除。
求助方向
想问问大家,有没有其他Gradle配置技巧或者方案可以解决这个重复类冲突?比如:
- 有没有办法让Gradle在构建时对冲突的类设置优先级?
- 或者有没有其他方式隔离两个SDK的依赖类?
- 有没有可能通过升级/降级其中某一个SDK的版本来避开这个冲突?
内容来源于stack exchange




