2010-06-21 60 views
8

我正在嘗試使用AccountManager存儲帳戶信息並實施了身份驗證程序,但我一直收到類似下面的例外情況,導致手機崩潰。與示例代碼相比,這似乎是因爲我沒有(或特別需要)SyncAdapter和關聯的服務。使用AccountManager而不添加SyncAdapter有什麼竅門?沒有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 2011-05-20 07:06:45

回答

7

我有同樣的問題。我實現了一個AccountAuthenticator,它直接在addAccount方法中添加Account,因爲我不需要用戶輸入。

我在創建帳戶後想要查看「帳戶&同步」首選項屏幕時出現異常。這不是創建的原因,因爲它可以與「開發工具> AccountsTester」一起使用。

編輯: 我認爲這是解釋,我會嘗試。

「[...]的崩潰是由於在處理賬戶和同步Android的代碼 一個無證假設引起的。他們是非常它 原來密切相關。該‘賬戶和同步’設置插件在系統上得到 賬戶後,使用內容服務來掃描 服務實現的意圖 「android.content.SyncAdapter」系統。

因爲我們的代碼沒有實現這一點,搜索出來空手 並且由於代碼假設這不會發生,所以BAM,空指針 異常和崩潰。 [...]「from:http://osdir.com/ml/Android-Developers/2009-11/msg05288.html

2

最後,我需要添加一個SyncAdapter和一個ContentProvider。最簡單的存根實現,但它似乎做的工作。我也認爲我發現問題沒有'牛逼發生在2.2