问题描述
我正在使用Google Play结算库在我的应用中提供一些应用内购买。一切工作正常,但是我从Crashlytics收到一些用户(主要是使用三星设备)的错误消息“ Google Play应用内结算API版本小于3”。
我搜索了类似的问题,发现这可能是由于安装了过旧版本的Google Play商店或未使用Google帐户正常登录引起的。问题在于,在许多情况下,由于与Billing Service的首次连接成功,所以已安装的Play商店版本为最新版本,并且帐户已正确登录。
例如,安装了Play服务的20.39.15
版和Play商店的22.4.29-21
版的用户会遇到这种错误流:
几秒钟后:
- 收到了对
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 (将#修改为@)