2010-06-21 2 views
8

AccountManager를 사용하여 계정 정보를 저장하고 인증 프로그램을 구현하려고하는데, 아래처럼 예외가 계속 발생합니다. 샘플 코드와 비교하면 SyncAdapter 및 관련 서비스가 없기 때문에 (또는 특히 필요함) SyncAdapter를 추가하지 않고 AccountManager를 사용하는 트릭이 있습니까? 제목에도 불구하고SyncAdapter가없는 AccountManager?

감사

I/AuthenticatorActivity(8526): onAuthenticationResult(true) 
I/AuthenticatorActivity(8526): finishLogin() 
W/dalvikvm(8108): threadid=13: thread exiting with uncaught exception (group=0x 
4001b170) 
E/AndroidRuntime(8108): Uncaught handler: thread android.server.ServerThread ex 
iting due to uncaught exception 
E/AndroidRuntime(8108): *** EXCEPTION IN SYSTEM PROCESS. System will crash. 
E/AndroidRuntime(8108): java.lang.NullPointerException 
E/AndroidRuntime(8108):  at com.android.settings.ManageAccountsSettings.o 
nSyncStateUpdated(ManageAccountsSettings.java:187) 
E/AndroidRuntime(8108):  at com.android.settings.ManageAccountsSettings.o 
nAccountsUpdated(ManageAccountsSettings.java:244) 
E/AndroidRuntime(8108):  at android.accounts.AccountManager$10.run(Accoun 
tManager.java:826) 
E/AndroidRuntime(8108):  at android.os.Handler.handleCallback(Handler.jav 
a:587) 
E/AndroidRuntime(8108):  at android.os.Handler.dispatchMessage(Handler.ja 
va:92) 
E/AndroidRuntime(8108):  at android.os.Looper.loop(Looper.java:123) 
E/AndroidRuntime(8108):  at com.android.server.ServerThread.run(SystemSer 
ver.java:435) 
+0

Briliiant 질문 – Lyn

답변

7

동일한 문제가 있습니다. 필자의 경우 사용자 입력이 필요하지 않기 때문에 AccountAuthenticator를 구현하여 addAccount 메소드에서 직접 Account를 추가합니다.

계정을 만든 후 "계정 & 동기화"환경 설정 화면을보고 싶습니다. 그것은 "Dev Tools> AccountsTester"와 작동하기 때문에 생성에 의한 것이 아닙니다.

편집 : 이것은 설명이라고 생각합니다. 시도해 보겠습니다.

"[...] 충돌이 계정 및 동기화를 처리하는 안드로이드 코드 의 문서화되지 않은 가정에 의해 발생합니다. 그들은 매우 밀접하게 관련. 그것은 밝혀있는 것을"계정 및 동기화 '설정 플러그인 시스템에 계정을받은 후, 의도 "android.content.SyncAdapter"을 구현하는 시스템에 서비스를 검색 할 컨텐츠 서비스를 사용합니다.

을 우리의 코드는이를 구현하지 않기 때문에, 검색이왔다 빈 손으로 을 넘겨주고 코드가 이런 일이 일어나지 않는다고 가정 했으므로 BAM, null 포인터 예외 및 충돌. [...] "from : http://osdir.com/ml/Android-Developers/2009-11/msg05288.html

2

결국 SyncAdapter와 ContentProvider를 추가해야했지만, 그저 stub 구현을 barest하는 것 같았지만, 그 일을하는 것처럼 보였습니다. 또한 문제가 ' t는 2.2