我正在尝试使用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)

最佳答案

我也有同样的问题。我实现了一个AccountAuthenticator,它直接将帐户添加到addAccount方法中,因为我不需要用户输入。

创建帐户并想要查看“帐户和同步”首选项屏幕后,出现异常。它不是由创建引起的,因为它可以与“Dev Tools> AccountsTester”一起使用。

编辑:
我认为这是解释,我会尝试的。

“[...]崩溃是由Android代码中未记录的假设引起的
处理帐户并进行同步。它们是密切相关的。它
原来,“帐户和同步”设置插件在获取后
系统上的帐户,使用内容服务进行扫描
实现 Intent 的系统上的服务
“android.content.SyncAdapter”。

由于我们的代码未实现此功能,因此搜索空手而归
并且由于代码假定永远不会发生这种情况,所以BAM,空指针
异常和崩溃。 [...]”来自:http://osdir.com/ml/Android-Developers/2009-11/msg05288.html

关于android - 没有SyncAdapter的AccountManager?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3085242/

10-10 19:54