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

'Authentication is required. You must sign into your Google account' when testing IAB

我一直在为 android 开发一个简单的游戏,在应用计费中使用时我遇到了很多问题 运行。为了执行 IAB,我使用了 TrivialDriveExample here 中提供的实用程序 classes。我已相应地复制并修改了本示例中提供的 MainActivity class 中的代码以使用 IAB。我还关注了 android 开发者页面上描述如何在开发者控制台上设置 IAB 的文档。

但是,当尝试使用以下代码在应用程序中测试购买产品时,出现问题标题中描述的错误。

helper.launchPurchaseFlow(game.getActivity(), sku, RC_REQUEST, getPurchaseListener(game));

(其中 helper 是上面 google 代码 link 中提供的 IabHelper class 的实例,RC_REQUEST 是设置为 10001 的常量,如简单驱动器示例中的 MainActivity,其中 sku 是产品的 sku - 如开发人员控制台中所示)。在这里,getPurchaseListener returns 一个 IabHelper.OnIabPurchaseFinishedListener 的实例(在示例代码的 util 包中提供)。

我确定的是:

我试过的:

我在尝试使用 android 的测试购买(使用 sku 'android.test.purchase')时也遇到了另一个错误。我明白了:

Error while retrieving information from server [DF-DFERH-01]

如上所述,我已清除 google 播放数据,删除我的帐户并重新添加,重新启动我的设备并重新安装应用程序。同样,这仅发生在我目前正在开发的应用程序中,而不发生在任何其他具有 IAB 的应用程序中。

编辑 请注意,我已经查看了其他人关于此错误的问题,并尝试了提供的解决方案无济于事。

集成了 IAB 的应用程序必须已发布 以便 Play 商店为其启用计费,它不会工作所以只要它在 Draft 中——文档似乎对此不是很清楚。

因此,请确保您确实发布了该应用程序(别担心,如果您只有 alpha and/or beta 版本,它不会在 Play 商店中为普通人列出)和,像往常一样,给Play商店一些时间来吸收它。