BillingClient:此设备不支持应用内结算 API 版本 3

Ale*_*tho 6 android in-app-billing android-billing

我正在开发一个 Android 应用程序,现在我正在实施应用程序内购买。我遵循 Android 开发人员自己的指南来执行此操作。但是,当我启动应用程序时,我在控制台中收到以下日志:

W/BillingClient: In-app billing API version 3 is not supported on this device.

我setUpBillingClient()在MainActivity. 其余的调用如下:

private fun setUpBillingClient() {
        billingClient = BillingClient.newBuilder(this)
            .setListener(purchaseUpdateListener)
            .enablePendingPurchases()
            .build()
        startConnection()
    }

private val purchaseUpdateListener =  PurchasesUpdatedListener { billingResult, purchases ->

    }

private fun startConnection() {
    billingClient?.startConnection(object : BillingClientStateListener {
        override fun onBillingSetupFinished(billingResult: BillingResult) {
            if (billingResult.responseCode ==  BillingClient.BillingResponseCode.OK) {
                Log.v("TAG_INAPP","Setup Billing Done")
                // The BillingClient is ready. You can query purchases here.
                queryAvaliableProducts()
            }
        }
        override fun onBillingServiceDisconnected() {
            Log.v("TAG_INAPP","Billing client Disconnected")
            // Try to restart the connection on the next request to
            // Google Play by calling the startConnection() method.
        }
     })
   }
Run Code Online (Sandbox Code Playgroud)

我没有从该方法中获取任何日志startConnection()。我似乎无法通过谷歌搜索该问题找到任何有类似问题的人。我尝试使用不同的模拟器和不同的 API 来查看是否是模拟设备不兼容,但它们都给出了相同的错误。有什么建议么?

我还尝试实现剩余的代码(完整的purchaseUpdateListener购买处理程序),但它仍然不起作用。流程开始时出现问题。

Dan*_*ich 17

该错误消息极具误导性。这只是意味着您首先必须在设备上登录 Google Play 商店。我已将此作为 Google Play 结算库问题跟踪器中的错误提交。https://issuetracker.google.com/issues/194746924

请注意,并非所有 Android 模拟器都支持 Google Play 商店!如果您的模拟器上没有 Play 商店,您将无法登录或测试购买。

使用 Android Studio AVD Manager 时,请确保创建支持 Play 商店的设备。在此处看到的示例中,“Pixel 4”具有 Play 商店支持,但“Pixel 4 XL”、“Pixel 4a”和“Pixel XL”设备没有 Play 商店图标;这些设备不能用于测试 Play Billing。

Android Studio AVD 管理器

  • 遗憾的是,到了 2022 年,错误信息仍然相同。顺便感谢您的回答! (2认同)