You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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

火山引擎 最新活动