Android IAB:“刷新库存时出错(查询商品价格)”开发人员错误

时间:2013-05-02 19:18:07

标签: android google-play

我一直在使用IABHelper课程,并使用Google提供的example code在app v3中设置Android。我主要通过购买(带有签名的apk和真实的信用卡收费)来工作。

但是,在今天的测试过程中,我从QueryInventoryFinishedListener方法开始在我的queryInventoryAsync()中收到新错误:

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

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

我找到了一个补丁here来解决我遇到的相同症状,但它对我没有用。

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

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

感谢您的任何见解。

更新

通过放弃我正在测试的帐户并切换到新帐户,我能够让库存查询交易再次发挥作用。没有代码更改。

我的初步结论是,我正在使用的用户帐户(?)中出现了损坏。在测试期间,我通过大量购买不同的应用程序内产品非常努力 - 但我仍然需要了解发生了什么,并确保这不会发生在我的任何用户身上。

如果您对此有任何经验,请告诉我。谢谢!

4 个答案:

答案 0 :(得分:20)

我们在测试模式下的某个应用中遇到了同样的问题。之后,我们发现,我们必须清除Google Play商店应用的缓存。

所以你可以试试这个 -

  1. 转到设备的“设置”菜单。
  2. 转到“应用程序”(也可能标记为“应用程序管理器”)。
  3. 切换到所有应用程序。
  4. 搜索并打开Goog​​le Play商店应用。点击它,应用程序设置将显示
  5. 点击清除数据并清除缓存。
  6. 现在返回您的应用并尝试加载广告资源。它解决了我们的问题。

答案 1 :(得分:15)

我通过反复试验发现,如果您一次查询超过20个项目,则会因此错误而失败。

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

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

答案 2 :(得分:0)

我对此日志有同样的问题:

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

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

所以你应该每次为每20件物品做同样的过程

答案 3 :(得分:0)

我遇到同样的错误,但我的问题是更改日期时间

  • 转到设置并检查您的日期时间是否正确