Flutter in_app_purchase 1.0.6 Android端getSkuDetails响应码2错误如何解决
可能原因及对应解决方案
- 签名不匹配
flutter run默认运行的是debug签名版本,而Google Play内购要求运行的应用签名必须和你上传到Play Console内部/封闭测试轨道的APK/AAB签名完全一致,签名不一致时会触发该报错。
解决方案:
- 将debug签名的证书指纹添加到Play Console「应用签名」页的上传指纹列表中
- 直接打与测试轨道签名一致的release包,上传到内部测试轨道后下载安装再测试
- 卸载手机上之前安装过的同包名不同签名的应用后再重试
- Google Play账号/服务异常
- 你当前登录的Google账号未加入Play Console的「许可测试」列表,或未接受对应测试轨道的测试邀请,会被内购接口拒绝访问
- 手机上的Google Play Store/Google Play服务版本过低,或缓存损坏无法正常调用内购接口
解决方案: - 检查登录的Google账号已添加到许可测试列表,且点击测试邀请链接接受了测试资格
- 更新Google Play Store和Google Play服务到最新版本,清除两者的缓存后重启手机重试
- 确认当前账号所在地区属于你配置的内购商品的售卖区域范围内
- 配置信息不匹配
- 代码中写的商品ID
item_id和Play Console中配置的激活状态的内购商品ID不完全一致,存在拼写、大小写错误 - AndroidManifest.xml中缺失内购必要权限
com.android.vending.BILLING - 应用的版本号、版本code与你上传到Play Console测试轨道的应用版本不一致
- 使用的
in_app_purchase插件版本过旧,与当前Play Billing库版本不兼容
解决方案: - 逐字符核对商品ID与Play Console配置一致,确认商品已经处于已激活状态,不是草稿
- 检查
android/app/src/main/AndroidManifest.xml中已添加权限:<uses-permission android:name="com.android.vending.BILLING" /> - 保证本地打包的应用版本号、版本code与Play Console测试轨道的最新版本完全一致
- 升级
in_app_purchase插件到官方最新稳定版
- 网络环境限制
虽然设备整体网络正常,但可能存在代理仅对浏览器生效、代理节点被Google Play接口限制、本地网络拦截Google Play服务请求的情况
解决方案:切换全局代理节点,或更换为手机移动网络挂全局代理后重试
内容的提问来源于stack exchange,提问作者Tetsuya
相关产品推荐
相关产品推荐

