计费库 2.0 querySkuDetailsAsync 报告错误 5 和 return 一个空的 SkuDetails 列表

Billing library 2.0 querySkuDetailsAsync reports error 5 and return an empty SkuDetails list

我在最新版本上升级到计费库 2,一切正常,但有一些用户(基于我的 Fabric 事件,占 1.6%)因购买问题与我联系。经过调查,结果是 querySkuDetailsAsync() 为这些用户提供了一个错误。我现在还有一个可以重现问题的 phone (Android Q Pixel 1 XL)。错误代码为 5,调试消息为空。

由于我必须通过 SkuDetails 才能开始购买,我该如何处理这个错误?即使 1.6% 的金额很小,也可能是相当大的购买量。

有人有什么想法吗?该代码显然适用于大多数用户,我仍在购买,我可以在多台测试设备上进行测试购买,但不能在一台上进行。这是一个定期购买,而不是订阅。

谢谢。

编辑:我更新到 2.0.2,但仍然有这个问题。我继续对进行查询时发生的情况进行了一些逐步调试,我可以看到它可以很好地获取 SKU,然后 com.android.billingclient.api.BillingClientImpl.querySkuDetailsInternal() 它调用 getSkuDetailsExtraParams,这就是一切坏的。我附上一些截图。

在这里您可以看到 skuList 列表中的项目。

在这里您可以看到在调用 getSkuDetailsExtraParams 之后它是如何出现错误代码 5 的。

我也向 Google 报告了这个问题,因为它对我来说像是一个错误。

似乎有一个关于此问题的错误报告,尽管在回答这个问题时还没有解决方案。如果您有任何日志或技术细节,如果您在问题跟踪器中分享它们可能会有所帮助:

https://issuetracker.google.com/issues/135272926

它应该通过对 Play Billing Library 2.0.3

的更新来修复