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

Flutter安卓端Google Play内购商品加载失败问题

Google Play内购商品加载失败(商品未找到)排查方案

以下是针对你遇到的商品未找到问题的常见排查点及解决方法:

  • 商品ID严格匹配
    确保代码中ids数组里的商品ID和Google Play控制台内创建的商品ID完全一致,包括大小写、特殊符号,不能存在拼写错误或多余空格。可以在代码中添加日志打印ids的具体内容,确认传入的ID正确:

    log('Querying product IDs: $ids');
    
  • 应用签名一致性
    测试用的APK/App Bundle必须与Google Play控制台中配置的签名一致:

    • 若使用Android Studio直接调试,需将调试签名的SHA-1添加到Google Play控制台的“应用签名”页面;
    • 若测试正式包,必须使用上传到Google Play的签名密钥打包。
  • 商品状态验证
    登录Google Play控制台,确认目标内购商品处于已激活状态,草稿或未发布的商品无法被查询到。

  • 测试账号配置

    • 在Google Play控制台的“测试人员”板块添加测试设备对应的Google账号;
    • 测试设备必须登录该授权测试账号,且未处于“内部测试”或“封闭测试”的未授权状态。
  • 地区限制检查
    检查商品的地区设置,确保测试设备所在地区在商品允许的访问范围内。

  • 插件版本与缓存

    • 更新in_app_purchase插件到最新稳定版本,避免版本兼容性问题;
    • Google Play配置同步可能存在延迟,等待1-2小时后重试,或清除Google Play商店的缓存后再测试。

你的实现代码参考:

@override
Future<List<ProductDetails>> loadProductsStore() async {
  final isConnectedInStore = await InAppPurchase.instance.isAvailable();

  if (isConnectedInStore) {
    // 新增日志打印ID,确认查询的商品ID
    log('Querying product IDs: $ids');
    final response = await InAppPurchase.instance.queryProductDetails(ids);
    final products = response.productDetails;

    for (final element in response.notFoundIDs) {
      log('Purchase $element not found');
    }
    return products;
  }
  throw ErrorFirebase();
}

内容的提问来源于stack exchange,提问作者Flávio George da Silva Romeiro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 18:05:01