Android IAB:“错误刷新库存(查询项目的价格)”开发人员错误

我已经使用IABHelper类设置了应用程序结算v3中的Android,并遵循了Google提供的示例代码 。 我主要通过购买工作(与签名的apk和真正的信用卡收费)。

然而,在今天的testing过程中,我开始从queryInventoryAsync()方法中的queryInventoryAsync()得到一个新的错误:

 IABResult message: "Error refreshing inventory (querying prices of items)" IABResult response: 5:Developer Error 

奇怪的事情#1是这发生在onIabSetupFinished()callback返回(习惯性的“Hooray”消息)之后。 奇怪的事情#2是我可以随后成功地处理应用程序购买(使用launchPurchaseFlow()方法)。

我在这里find了一个补丁来解决我遇到的同样的症状,但是这对我没有帮助。

我尝试过使用不同的设备,使用不同的Gmail帐户,从头开始构build新的产品。 我什至得到我的应用程序的正确运行(什么?!)的早​​期版本的错误。

我的问题是:即使在IABHelper确认设置成功后,为什么我无法查询产品库存? 有什么可能导致这个错误,我该如何解决?

感谢您的任何见解。

UPDATE

我能够通过放弃我正在testing的帐户并切换到一个新帐户来使库存查询事务重新开始工作。 没有代码更改。

我的试探性结论是,在我使用的用户帐户(?)中某些内容已损坏。 在testing过程中,我遇到了很多不同的应用内产品的购买问题,但我仍然需要了解发生了什么,并确保这不会发生在我的任何用户身上。

请让我知道,如果你有这方面的经验。 谢谢!

Solutions Collecting From Web of "Android IAB:“错误刷新库存(查询项目的价格)”开发人员错误"

我们在testing模式下的应用程序中遇到了同样的问题。 后来,我的开发人员发现,他必须清除Google Play商店应用的caching。

所以你可以试试这个 –

  1. 转到设备的“设置”菜单。
  2. 转到应用程序(也可能被标记为应用程序pipe理器)。
  3. 切换到所有应用程序。
  4. search并打开Goog​​le Play商店应用。 点击它,应用程序设置将显示
  5. 点击清除数据和清除caching。

现在回到您的应用程序,并尝试加载广告资源。 它解决了我的问题。

我发现通过试验和错误,如果你一次查询超过20项,它会失败,这个错误。

我为IabHelper.java提交了一个补丁,将SKU列表分成了20个项目的数据包并进行查询。

你可以在那里抓取: https : //code.google.com/p/marketbilling/issues/detail?id = 123

我有这个日志相同的问题:

 "InAppBillingManager.getSkuDetails: Input Error: skusBundle array associated with key ITEM_ID_LIST cannot contain more than 20 items." 

本笔记在IInAppBillingService.aidl文件中提到,请参阅方法getSkuDetails(..)的文档。

所以你应该每次为每20个项目做同样的过程