2015-01-28 2 views
2

Я пытаюсь написать компонент Authenticator, и я продолжаю получать исключение во время выполнения, которое я не могу решить. Все, что я реализовал, это метод addAccount(). Я пытаюсь добавить аккаунт через Настройки Android -> Учетные записи -> Добавить учетную запись. Я выбираю Тип учетной записи, который успешно отображается в списке. Аутентификатор запускается и вызывает addAccount(). Он останавливается успешно начала Authentication активность, хотя и выдает это исключение:Аутентификатор addAccount вызывает сбои

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) 

Реализация 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; 
+0

У меня такая же проблема. Вы еще не нашли ответа? – cybersam

ответ

0

Я просто решить ту же проблему, но мое решение может или может не относиться к вам.

Я использую AndroidAnnotations, а мой класс AuthenticatorActivity был аннотирован как @EActivity. Поэтому я должен был построить намерение, используя AuthenticatorActivity_.class (обратите внимание на знак подчеркивания!), Который является классом, созданным для меня AndroidAnnotations. У моего первоначального класса было бы много нулевых переменных.

В будущем я буду стараться помнить об этом, поскольку во время сборки нет ошибок или предупреждений.

Я надеюсь, что это тоже поможет.

Кстати, я нашел связанный AndroidAnnotations Issue, в котором обсуждаются другие сценарии, где мы должны эксплицитно использовать сгенерированное имя класса. Также обсуждается, как это можно было бы решить, но проблема все еще остается открытой.

Смежные вопросы