首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安卓消耗品:“已经拥有该项目”,但inventory.hasPurchase()是假的

安卓消耗品:“已经拥有该项目”,但inventory.hasPurchase()是假的
EN

Stack Overflow用户
提问于 2014-09-19 05:53:13
回答 2查看 2.8K关注 0票数 20

我被谷歌困在应用程序v3中--我测试了一次没有消费的购买(例如,当应用程序在购买和消费之间崩溃时)--现在我找不到出路了。

如果我想再买一次,上面写着“你已经拥有那件东西了”。但当我测试所有权时,它说我不拥有它:

代码语言:javascript
运行
复制
Inventory inv = mHelper.queryInventory(false, null);
inv.getPurchase(sku); // null
inv.hasPurchase(sku); // false

我也不能消费一些东西,因为我没有东西要消费。怎么才能继续下去?

编辑如下所示:购买应用程序内耗材,然后禁用互联网连接。再过几个小时,你就不能再买这个产品了。刚用游戏商店的一个流行应用程序(钻石挖掘公司)进行了测试,我的行为完全一样。真的没有可能避免/解决这个问题吗?

EN

回答 2

Stack Overflow用户

发布于 2014-12-19 00:31:05

我遇到了这个问题。我在电话里有两个Google帐户,一个是开发人员帐户(我愚蠢地使用我的个人帐户),另一个是我在开发人员控制台注册的测试帐户。我已经从我的手机账户中删除并重新添加了开发者帐户,这让我可以从我的应用程序中进行测试购买,我认为如果开发者帐户是这个列表中的第二个,它将使用第一个用于购买。

唉,在这个应用程序运行了几次之后,我遇到了你的问题。我放弃了这两者的尝试,并从我的手机上删除了开发者的帐户。虽然非常不方便,但它解决了这个问题,并允许我测试购买,消费,查询等。

票数 1
EN

Stack Overflow用户

发布于 2017-05-28 13:23:42

如果你做的一切都是正确的,而且你的代码也没问题,那么问题很可能是在缓存的Google服务数据中。

例如,当您在设备A上进行测试购买时--在您的设备B上(使用相同的Google帐户登录),您将在没有购买的情况下继续接收inventory。你的inventory.getPurchase(sku)将返回nullinventory.hasPurchase(sku)将返回false

要解决这个问题,尝试打开Google并使用最近的Apps按钮关闭它(单击它,然后滑动应用程序),这将比通常的“后退”按钮更快地终止应用程序。然后关掉你的设备几分钟。

我们的目标是让谷歌发挥更新它的缓存。

确保您使用的是wifi,因为如果您使用移动数据,它可能很少更新。最终,数据将被更新,您将得到您的购买。在我的情况下,它发生在5分钟或下午。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25927241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档