身份验证异常:AVD上的绑定失败

4
我想创建一个使用Google OAuth库的Android应用程序,就像这个示例
然而,当我调用getAuthTokenByFeatures时,会出现异常并在LogCat上打印出以下内容:
05-24 10:56:58.224: W/System.err(557): android.accounts.AuthenticatorException: bind failure
05-24 10:56:58.236: W/System.err(557):  at android.accounts.AccountManager.convertErrorToException(AccountManager.java:1563)
05-24 10:56:58.236: W/System.err(557):  at android.accounts.AccountManager.access$400(AccountManager.java:140)
05-24 10:56:58.236: W/System.err(557):  at android.accounts.AccountManager$AmsTask$Response.onError(AccountManager.java:1409)
05-24 10:56:58.236: W/System.err(557):  at android.accounts.IAccountManagerResponse$Stub.onTransact(IAccountManagerResponse.java:69)
05-24 10:56:58.236: W/System.err(557):  at android.os.Binder.execTransact(Binder.java:338)
05-24 10:56:58.236: W/System.err(557):  at dalvik.system.NativeStart.run(Native Method)

然而,在实际的Android设备上却没有这种情况发生。我正在模拟Android 4.0.3,但无论如何都找不到答案。有什么想法吗?


您需要安装Google账户验证器,才能使账户管理服务绑定到它上面。所有“Google体验”手机(即大多数手机)都会预装此验证器,但SDK则不然。 - Jens
我明白了,谢谢。你能告诉我如何解决这个问题吗?我刚刚注意到开发者工具下有一个名为Google登录的选项也无法使用。 - JSFernandes
@JSFernandes - 我已经像你一样在带有Google API的模拟器上运行了我的应用程序(2.3.3),但仍然遇到相同的错误。你有什么想法是出了什么问题或我还能做些什么?实际设备上也发生了同样的事情。我需要在设备上登录Google账户吗? - Braj
1个回答

6

当您在清单文件中未声明 Authenticator 时,通常会出现此问题。请参见创建存根 Authenticator

<service
        android:name="com.example.android.syncadapter.AuthenticatorService">
    <intent-filter>
        <action android:name="android.accounts.AccountAuthenticator"/>
    </intent-filter>
    <meta-data
        android:name="android.accounts.AccountAuthenticator"
        android:resource="@xml/authenticator" />
</service>

1
或者当您在清单文件中声明位于<application></application>应用程序容器之外时,就像我已经做了一个小时... F。 - Flashbump

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