如何解决更新了Play商店后,Google Play应用内结算API版本不到3
我正在使用Google Play结算库在我的应用中提供一些应用内购买。一切工作正常,但是我从Crashlytics收到一些用户(主要是使用三星设备)的错误消息“ Google Play应用内结算API版本小于3”。
我搜索了类似的问题,发现这可能是由于安装了过旧版本的Google Play商店或未使用Google帐户正常登录引起的。问题在于,在许多情况下,由于与Billing Service的首次连接成功,所以已安装的Play商店版本为最新版本,并且帐户已正确登录。
例如,安装了Play服务的20.39.15
版和Play商店的22.4.29-21
版的用户会遇到这种错误流:
- 实例化
BillingClient
- 致电
billingClient.startConnection
- 已收到带有响应代码
onBillingSetupFinished
的回调OK
- 查询购买并获得成功的回复
几秒钟后:
- 收到了对
onBillingServiceDisconnected
的 3次呼叫(此方法在我的实现中没有任何作用) - 通过
onBillingSetupFinished
3和responseCode
收到了对debugMessage
的呼叫:“ Google Play应用内结算API版本小于3”
这是我正在使用的代码的一部分,为清楚起见,我省略了日志记录:
class BillingManager(
private val application: Application
) : PurchasesUpdatedListener,BillingClientStateListener {
...
init {
billingClient = BillingClient.newBuilder(application.applicationContext)
.enablePendingPurchases()
.setListener(this)
.build()
connectToPlayBillingService()
}
private fun connectToPlayBillingService() {
if (!billingClient.isReady) {
billingClient.startConnection(this)
}
}
override fun onBillingSetupFinished(billingResult: BillingResult) {
if (billingResult.responseCode == BillingResponseCode.OK) {
queryPurchasesAsync()
} else {
handleBillingException(BillingException("Billing connection error",billingResult))
}
}
override fun onBillingServiceDisconnected() {
Log.w(TAG,"onBillingServiceDisconnected")
}
...
}
这是三星设备的问题吗?为什么当我只打一次onBillingSetupFinished
时就接到多个打给startConnection
的电话?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。