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
相关产品推荐
相关产品推荐

