我一直在为android开发一款简单的游戏,我在使用应用计费时遇到了许多问题。为了执行IAB,我使用TrivialDriveExample中提供的实用程序类。我已经复制并相应地修改了本例中提供的MainActivity类中的代码,以使用IAB。我还遵循了android开发人员页面上描述如何在开发人员控制台上设置IAB的文档。
然而,当尝试使用以下代码在应用程序中测试购买产品时,我得到了问题标题中描述的错误。
helper.launchPurchaseFlow(game.getActivity(), sku, RC_REQUEST, getPurchaseListener(game));
(其中helper是上面google代码链接中提供的IabHelper类的实例,RC_REQUEST
是设置为10001的常量,如在琐碎驱动器示例中的MainActivity中所示,其中sku是产品的sku -如在开发人员控制台中所示)。这里,getpurchasellistener返回一个IabHelper.OnIabPurchaseFinishedListener
的实例(在示例代码的util包中提供)。
我确信的:
- sku是正确的,与开发控制台提供的完全相同。
- 作为alpha上传到开发者控制台的APK与设备上安装的APK相同(并且使用我的开发者密钥而不是调试密钥签名)。
- 我的帐户和所有使用的测试帐户都在注册alpha测试的google组和从开发控制台接收许可响应的帐户列表中。
- 代码中使用的每个对象!= null 我可以在我的应用上测试Google Play游戏服务(成就&游戏排行榜)。这与我正在开发的应用程序有关,因为IAB适用于其他应用程序(与Clash of Clans和Infectanator进行测试)。
我试过了:
- 从我的设备上删除我的开发者谷歌账户,只留下一个测试账户(+等待一夜没有我的开发者账户安装在我的设备上,然后在早上用我的测试账户进行测试)。
- 清除所有google play数据和缓存。
- 重新启动我的设备/重新安装应用程序。
我也得到另一个错误时,试图使用android的测试购买(使用sku 'android.test.purchase')。我得到这个:
Error while retrieving information from server [DF-DFERH-01]
如上所述,我已经清除了google play数据,删除了我的帐户并重新添加了它,重新启动了我的设备并重新安装了应用。同样,这只发生在我目前正在开发的应用上,而不是任何其他带有IAB的应用。
编辑要注意的是,我已经查看了其他人关于此错误的问题,并尝试了提供的解决方案,但无济于事。
应用与 IAB集成必须发布为Play Store启用计费,它不会工作,只要它在草案 -文档似乎不是很清楚这一点。
所以,确保你真的发布了应用(不要担心,如果你只有alpha和/或beta版本,它不会在Play Store中列出),像往常一样,给Play Store一些时间来吸收它。
同样的答案