我面临与
完全相同的问题In-app billing v3 unable to query items without network connection or in airplane/flight mode
并不总是发生。您需要将手机切换到飞行模式,或关闭wifi,等待几个小时,只会出现问题。将显示以下错误消息。
无法查询iventory:IabResult:刷新iventory时出错 (查询物品价格)。 (回复:6:错误)
作者建议使用
List<String> skulist = new ArrayList<String>();
skulist.add("my_sku_name1");
skulist.add("my_sku_name2");
mHelper.queryInventoryAsync(true, skulist, mGotInventoryListener);
解决问题。
然而,它对我不起作用。同样的问题仍然存在。
有关此问题的任何解决方法吗?感谢。
答案 0 :(得分:8)
正如杰瑞在评论中所说,你可以通过调用
来解决这个问题mHelper.queryInventoryAsync(false,mGotInventoryListener);
而不是
mHelper.queryInventoryAsync(mGotInventoryListener);
我已禁用设备中的所有网络连接(超过一天),并且可以通过单个参数更改可靠地重现/修复问题。看起来购买本身将通过应用内结算服务缓存更长时间(无限期?),而不是价格等sku详细信息。
答案 1 :(得分:3)
看起来Google Play的缓存广告资源已到期。这可能是Google Play应用如何运作的实施细节。
错误6定义为BILLING_RESPONSE_RESULT_ERROR。
如果即使没有互联网连接也无法提供购买库存,您可能需要自行缓存上次返回的结果,并在查询失败时使用它们。
然而,购买也不适用于这种情况,为什么要打扰?