You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

更新Stripe时调用PaymentSessionConfig遇私有Companion无法访问问题求助

解决Stripe PaymentSessionConfig私有Companion的阻塞问题

嘿,我刚碰到过类似的Stripe SDK问题,这就帮你理清思路!

你遇到的两个错误——Cannot access 'Companion': it is private in 'PaymentSessionConfig'和类型不匹配,根源是同一个:你直接把PaymentSessionConfig类的Companion对象传给了PaymentSession构造器,但它既不允许被访问,也不是构造器需要的PaymentSessionConfig实例。

正确的解决方法:用Builder模式创建配置实例

Stripe的PaymentSessionConfig是通过Builder来构建实例的,你不能直接引用它的Companion或者直接实例化(因为它的构造器可能也是私有的)。试试下面的代码:

// 第一步:构建符合要求的PaymentSessionConfig实例
val paymentSessionConfig = PaymentSessionConfig.Builder()
    // 根据你的需求添加配置项,比如允许的付款方式
    .setPaymentMethodTypes(listOf(PaymentMethod.Type.CARD))
    // 其他配置:比如设置是否允许保存付款方式等
    .setAllowPaymentMethodsReuse(true)
    .build()

// 第二步:用这个实例初始化PaymentSession
mPaymentSession = PaymentSession(activity = summaryActivity, config = paymentSessionConfig)

为什么之前的写法不对?

  • PaymentSessionConfig的Companion被标记为私有,这是Stripe SDK的内部实现,外部代码根本无法访问它;
  • 就算能访问,Companion对象的类型是PaymentSessionConfig.Companion,而PaymentSession构造器需要的是PaymentSessionConfig类型的实例,两者完全不匹配,所以会报类型错误。

额外提示

如果你的Stripe SDK版本比较旧,Builder的方法名可能略有不同,建议确保你使用的是最新稳定版的Stripe Android SDK,这样能避免一些API兼容性问题。

内容的提问来源于stack exchange,提问作者Quentin Chéruel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 20:27:39