Authenticator addAccount导致崩溃

时间:2015-01-28 17:50:31

标签: java android authentication

我试图编写一个Authenticator组件,并且我不断得到一个我无法解决的运行时异常。我实现的只是addAccount()方法。我尝试通过Android的设置添加帐户 - >帐户 - >新增帐户。我选择在列表中成功显示的帐户类型。启动Authenticator并调用addAccount()。它不会成功启动Authentication Activity,并抛出此异常:

01-28 17:38:57.599     886-1466/? W/Binder﹕ Caught a RuntimeException from the binder stub implementation.
    java.lang.NullPointerException
            at com.android.server.accounts.AccountManagerService$Session.onResult(AccountManagerService.java:2203)
            at android.accounts.IAccountAuthenticatorResponse$Stub.onTransact(IAccountAuthenticatorResponse.java:59)
            at android.os.Binder.execTransact(Binder.java:404)
            at dalvik.system.NativeStart.run(Native Method)

Authenticator的addAccount()的实现:

final Bundle bundle = new 
final Intent intent = new Intent(context, AuthenticatorActivity.class);

intent.putExtra(AuthenticatorActivity.ARG_ACCOUNT_TYPE, accountType);
intent.putExtra(AuthenticatorActivity.ARG_AUTH_TYPE, authTokenType);
intent.putExtra(AuthenticatorActivity.ARG_IS_ADDING_NEW_ACCOUNT, true);

intent.putExtra(AccountManager.KEY_ACCOUNT_AUTHENTICATOR_RESPONSE, response);

bundle.putParcelable(AccountManager.KEY_INTENT, intent);

return bundle;

1 个答案:

答案 0 :(得分:0)

我刚刚解决了同样的问题,但我的解决方案可能适用于您,也可能不适用于您。

我正在使用AndroidAnnotations,我的AuthenticatorActivity课程被注释为@EActivity。因此,我应该使用AuthenticatorActivity_.class构建意图(注意下划线!),这是AndroidAnnotations为我生成的类。我的原始类会有很多空变量。

将来,我必须小心谨慎,因为在构建时没有错误或警告。

我希望这对你有帮助。

顺便说一句,我找到了一个相关的AndroidAnnotations Issue,它讨论了我们必须使用生成的类名称的其他场景。还讨论了如何解决这个问题,但问题仍然存在。