Android账户认证异常:绑定失败。

13

我遇到了以下异常;虽然提供的信息不多,但似乎没有很好的工作文档。可以说,我尝试了所有实现自己的Authenticator的示例。

我在这里找到了一个提出的答案来修复我的Manifest文件(声明服务)。已经做过了,问题仍然存在。

我的初始解决方案基于这个示例:write-your-own-android-authenticator

W/System.err﹕ android.accounts.AuthenticatorException: bind failure

W/System.err﹕ at Android.accounts.AccountManager.convertErrorToException(AccountManager.java:2024)

W/System.err﹕ at android.accounts.AccountManager.access$400(AccountManager.java:144)

W/System.err﹕ at android.accounts.AccountManager$AmsTask$Response.onError(AccountManager.java:1867)

W/System.err﹕ at android.accounts.IAccountManagerResponse$Stub.onTransact(IAccountManagerResponse.java:69)

W/System.err﹕ at android.os.Binder.execTransact(Binder.java:446)
2个回答

24

我遇到了同样的情况。无论在哪里搜索都没有运气。实际上,针对android authenticator 的资源和教程非常少。我也参考了同一篇文章udinic:write your own android authenticator

这篇文章并不是非常详细,很容易迷失方向。我实际上已经在authenticator.xml中更改了我的accountType,但忘记在AccountGeneral类中进行更改。 两者应该相同,否则您的活动将无法绑定到回调的AuthenticatorService

authenticator.xml

<?xml version="1.0" encoding="utf-8" ?><account-authenticator 
xmlns:android="http://schemas.android.com/apk/res/android"
    android:accountType="your_account_type_name"
    android:icon="@drawable/ic_navigate_before"
    android:smallIcon="@drawable/ic_navigate_before"
    android:label="@string/label"
    android:accountPreferences="@xml/prefs"/>

AccountGeneral.java

公共类 AccountGeneral {

/**
 * Account type id
 */
public static final String ACCOUNT_TYPE = "your_account_type_name";

/**
 * Account name
 */
public static final String ACCOUNT_NAME = "your_account_name";

/**
 * Auth token types
 */
public static final String AUTHTOKEN_TYPE_READ_ONLY = "Read only";
public static final String AUTHTOKEN_TYPE_READ_ONLY_LABEL = "Read only access to an FitDodo account";

public static final String AUTHTOKEN_TYPE_FULL_ACCESS = "Full access";
public static final String AUTHTOKEN_TYPE_FULL_ACCESS_LABEL = "Full access to an FitDodo account";

public static final ServerAuthenticate sServerAuthenticate = new ParseComServerAuthenticate();

}

希望这对你有所帮助。


1
AccountGeneral类和authenticator.xml文件都有相同的名称,但是绑定失败错误。 - Mansukh Ahir
1
您,老板!您帮我省了很多麻烦。 - Ventis
太棒了,真是个好发现。那个隐藏得真的很好!感谢您的发布!!! - Kiwi

0
如果您忘记在 AndroidManifest.xml 文件中添加 <service> ...</service> 块,也会出现此错误。
 <service android:name=".auth.YourAuthenticationService">
        <intent-filter>
            <action android:name="android.accounts.AccountAuthenticator" />
        </intent-filter>

        <meta-data
            android:name="android.accounts.AccountAuthenticator"
            android:resource="@xml/authenticator" />
    </service>

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