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

gcl*_*cl1 14 android google-play

我一直在app app v3中设置Android,使用IABHelper该类,并遵循Google提供的示例代码.我主要通过购买(带有签名的apk和真实的信用卡收费).

但是,在今天的测试过程中,我开始QueryInventoryFinishedListenerqueryInventoryAsync()方法中得到一个新的错误:

IABResult message: "Error refreshing inventory (querying prices of items)"
IABResult response: 5:Developer Error
Run Code Online (Sandbox Code Playgroud)

奇怪的是#1是在onIabSetupFinished()回调返回之后发生的(使用习惯的"Hooray"消息).奇怪的是,我可以随后成功处理应用内购买(使用该launchPurchaseFlow()方法).

我在这里发现了一个补丁,解决了我遇到的相同症状,但它对我没有用.

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

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

感谢您的任何见解.

UPDATE

通过放弃我正在测试的帐户并切换到新帐户,我能够使库存查询事务再次起作用.没有代码更改.

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

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

zin*_*ree 20

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

所以你可以尝试这个 -

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

现在返回您的应用并尝试加载广告资源.它解决了我们的问题.

  • 但是,如果这个应用程序发布到游戏商店,我们不能要求用户这样做. (8认同)

Val*_*lli 15

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

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

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