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

Google Play Billing 5.1版queryProductDetailsAsync返回空列表求助

Google Play Billing 5.1 查询商品列表为空的排查方案

以下是针对你遇到的queryProductDetailsAsync返回空List<ProductDetails>问题的常见排查点:

  • 商品后台配置校验

    • 确认Google Play控制台中商品的Product ID和代码中"test_billing"完全一致,注意大小写、特殊字符的匹配
    • 检查商品类型:代码中设置的是BillingClient.ProductType.INAPP(一次性商品),控制台中该商品需对应设置为“应用内商品”,而非“订阅”
    • 确保商品已发布:处于草稿或未发布状态的商品无法被查询到,需在控制台中完成发布流程(即使是测试环境也需发布)
  • 测试环境配置问题

    • 确认测试设备使用的Google账号已添加到Google Play控制台的许可测试列表中(路径:应用 -> 测试 -> 许可测试)
    • 测试用的APK需与控制台中配置的签名一致:如果是debug测试,需将debug签名的SHA-1添加到控制台的应用签名配置中;如果是release包,需使用控制台中对应的签名密钥
  • BillingClient状态检查

    • 确保调用queryProductDetailsAsync前,BillingClient已处于READY状态,可通过BillingClientStateListener的onBillingSetupFinished回调确认连接成功后再执行查询
  • 错误信息排查

    • 完善代码中的else分支,打印billingResult的具体错误码和描述,比如:
      } else {
          Log.e("BillingError", "Response code: " + billingResult.getResponseCode() + ", message: " + billingResult.getDebugMessage());
      }
      
      常见错误码如ITEM_NOT_FOUND(商品不存在或配置错误)、SERVICE_DISCONNECTED(服务未连接)等,能直接定位问题
  • 缓存清除

    • 清除Google Play商店应用的缓存和数据,然后重启设备和APP,避免旧缓存导致的查询异常
  • 代码细节校验

    • 确认ImmutableList的导入正确,且productList已正确构建并传入QueryProductDetailsParams
    • 检查是否在主线程调用queryProductDetailsAsync(该方法需在主线程执行)

内容的提问来源于stack exchange,提问作者Mohammad javad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 16:30:58