getToken() 失败。状态为 BAD_AUTHENTICATION 错误。

88

在使用Android Studio运行我的安卓应用程序时,出现了以下错误。因此,该应用程序无法在我的设备上安装。没有找到解决方案 :( 请帮忙

认证:[GoogleAccountDataServiceImpl] getToken() 失败。状态为BAD_AUTHENTICATION,帐户:,应用程序:com.android.vending,服务:androidmarket com.google.android.gms.auth.be.account.b.d: 长期凭据不可用。


14
为什么会有这么多赞,但没有被选中的答案?那么解决方案是什么呢? - Louis
我也遇到了这个问题。有什么解决办法吗? - CMA
谢谢你分享你的问题。对我来说很有帮助。 - Maruf Alam
谢谢你分享你的问题。对我来说很有帮助。 - undefined
15个回答

4

我曾经遇到了同样的问题,解决方法是我的google-services.json文件中的凭据错误,获取了一个新文件后,问题得以解决。

在解决这个问题的过程中,我也更新了我的Google Play服务,但我不认为这是必要的。


你所说的“错误凭据”具体指什么?因为“google-services.json”包含了很多信息。 - Pavlos Mavris
就像我说的那样,我刚刚得到了一个新的 google-services.json 文件并进行了替换。 - Pouya Danesh
我目前使用的 'google-services.json' 在模拟器上测试时运行良好,但在尝试在实际设备上运行时出现“BAD_AUTHENTICATION”错误,这让我感到困惑,我不确定是否应该生成一个新的。 - Pavlos Mavris
似乎我的答案对您不起作用。但是您应该始终在物理设备上测试google-services。甚至可能模拟器没有完全读取文件中的所有内容。 - Pouya Danesh
我认为谷歌的文档不够好,不够清晰,无法理解如何正确设置帐户以及如何集成谷歌云端硬盘。 - Pavlos Mavris
这真的不够好,但如果您的应用程序尚未投入生产,则删除并重新提交 google-services.json 不会造成任何问题。 - Pouya Danesh

4
我在尝试直接从Android Studio安装应用时遇到了这个错误。
这是由于证书不匹配造成的,因为我在Play Console中使用了发布证书来设置应用程序,而Android Studio默认使用调试证书对应用程序进行签名。
通过adb安装应用程序解决了错误。

https://developers.google.com/games/services/android/quickstart#step_4_test_your_game

请确保运行的APK是您导出并使用与您在Google Play控制台中应用程序设置期间使用的证书之一匹配的证书签名的。

2
几天前我遇到了同样的问题。我只是在一个新项目中编译了整个代码,问题解决了!不知道真正的问题是什么。有一个这里提交的问题,但没有解决方案。

2
有几个原因可能导致您收到这个消息:
  1. 您尝试登录的帐户需要在手机上重新进行身份验证(尝试使用其他帐户)。

  2. gms:play-services版本过时(截至2021年1月需要为15+)。

  3. 您的应用指纹不正确。您需要为开发构建一个指纹,为生产构建一个不同的指纹——这取决于您如何签名(您是否拥有最终发布密钥,还是Play商店会重新签名使用最终发布密钥?)。

请按照谷歌教程获取其独立项目,这应该需要20分钟,并在那里检查您的设置。如果您正在使用所有正确的帐户运行它,它应该可以正常工作。然后返回您的应用程序。 https://developers.google.com/identity/sign-in/android/start

现在在旧的Galaxy Tab 2测试设备上不断重复此问题,直到崩溃:Auth:[GoogleAccountDataServiceImpl] getToken() - > BAD_AUTHENTICATION。帐户:<ELLIDED:XXXXXXXXXX>,应用程序:com.google.android.gms,服务:oauth2:https://www.googleapis.com/auth/login_manager。更新和清除Play服务数据没有帮助。在Crashylitics上显示为:libc.so(缺少BuildId 4a41edc48218b940fbd9785bf4e4abfd)错误。我没有使用链接提到的OAuth2 API。 - Androidcoder

2
这件事情发生在我身上,ADB出现了授权错误,其中包括:
android Warn Auth [GoogleAuthUtil] GoogleAuthUtil

因为,如上所述,我之前在手机上运行了一个调试版本的构建。所以我完全卸载了手机上的应用程序,然后下一次[构建和运行]成功运行。

它对我起到了魔法般的作用。非常感谢。 - Maruf Alam
它对我起到了魔力般的作用。非常感谢。 - undefined
是的,这对我也起作用了。很多其他答案提到了一些诸如“我把所有代码放在一个新项目中”、“我重新启动了手机”等等的事情,我认为它们基本上都是重置应用程序,所以重新安装是我认为最好的解决方案。 - undefined

1
我在手机上更新了Google Play服务,不再收到相同的错误。我正在导入com.google.android.gms:play-services-cast:9.6.1和analytics:9.6.1。不确定设备上运行的版本是否太低,但问题现已解决,但不知道如何防止旧版Google Play服务的用户出现此错误。

1

尝试过其他解决方案,但都无效。重新启动设备后,错误消失了。


1
如果您正在使用Firebase服务器,根据Firebase的更新,如果您提供电话号码验证,请在联系电话之前加上国家代码,这是必需的。 例如- +91 9999998888

0
在我的情况下,这是一个依赖版本的问题。我必须更新 Firebase 的 auth 依赖到最新版本: implementation 'com.google.firebase:firebase-auth:17.0.0'

0

我通过更新指纹(sha1或sha256)解决了这个问题。


你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接