书史足自悦,安用勤与劬。这篇文章主要讲述Android IAB:“刷新库存时出错(查询商品价格)”开发人员错误相关的知识,希望能为你提供帮助。
我一直在使用IABHelper
类在app billing v3中设置android,并遵循Google提供的example code。我主要通过购买(带有签名的apk和真实的信用卡收费)。
但是,在今天的测试过程中,我开始从QueryInventoryFinishedListener
方法中获取queryInventoryAsync()
中的新错误:
IABResult message: "Error refreshing inventory (querying prices of items)"
IABResult response: 5:Developer Error
奇怪的事情#1是这发生在
onIabSetupFinished()
回调返回之后(习惯性的“Hooray”消息)。奇怪的是,我可以随后成功处理应用内购买(使用launchPurchaseFlow()
方法)。我发现了一个补丁here,它解决了我遇到的相同症状,但它对我不起作用。
我尝试过使用不同的设备,使用不同的Gmail帐户,并从头开始构建新产品。我甚至在我的应用程序的早期版本上运行正确的错误(什么?!)。
我的问题是:为什么我不能查询产品库存,即使在
IABHelper
确认设置成功后?什么可能导致此错误,我该如何解决?感谢您的任何见解。
UPDATE
通过放弃我正在测试的帐户并切换到新帐户,我能够使库存查询事务再次起作用。没有代码更改。
我的初步结论是,我正在使用的用户帐户中有些东西被破坏了(?)。在测试期间,我通过大量购买不同的应用程序内产品非常努力 - 但我仍然需要了解发生了什么,并确保我的任何用户都不会遇到这种情况。
如果您对此有任何经验,请告诉我。谢谢!
答案我们在测试模式下的一个应用程序中遇到了同样的问题。后来,我们发现,我们必须清除Google Play商店应用的缓存。
所以你可以尝试这个 -
- 转到设备的“设置”菜单。
- 转到应用程序(也可能标记为“应用程序管理器”)。
- 切换到所有应用程序。
- 搜索并打开Goog??le Play商店应用。点击它,将显示应用程序设置
- 点击清除数据和清除缓存。
另一答案我通过反复试验发现,如果您一次查询超过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(..)
的文档。【Android IAB(“刷新库存时出错(查询商品价格)”开发人员错误)】所以你应该每次为每20件物品做同样的过程
推荐阅读
- 支持Android Wear的APK必须至少具有至少23的SDK版本
- 15个最好的开源JavaScript游戏引擎推荐
- 5个Android评分对话框小部件推荐
- 最佳树形视图(jQuery和Javascript插件)
- 最佳开源JavaScript Time Ago库
- Web应用程序的最佳jQuery调度程序和事件日历
- 最佳JavaScript和jQuery Marquee(News Ticker)插件
- 最佳的免费Web开发IDE,适用于JavaScript,HTML和CSS
- 十大最佳高级医学/医疗WordPress主题