测试 IAB 时的'Authentication is required. You must sign into your Google account'



我一直在为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一些时间来吸收它。

同样的答案

最新更新