8

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

4 回答 4

7

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

我在创建帐户并想查看“帐户和同步”首选项屏幕后收到异常。这不是由创建引起的,因为它与“开发工具 > AccountsTester”一起使用。

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

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

由于我们的代码没有实现这一点,因此搜索空手而归,并且由于代码假设这永远不会发生,BAM、空指针异常和崩溃。[...]”来自: http: //osdir.com/ml/Android-Developers/2009-11/msg05288.html

于 2010-08-17T11:34:34.397 回答
2

最后我需要添加一个 SyncAdapter 和一个 ContentProvider。只是最简单的存根实现,但它似乎完成了这项工作。我也认为我发现问题不会出现在 2.2

于 2010-10-21T16:10:17.480 回答
1

这是一个已知问题:http ://code.google.com/p/android/issues/detail?id=5009

NPE 发生是因为没有找到相应的同步适配器。

于 2011-01-10T03:00:03.517 回答
0

http://www.c99.org/2010/01/23/writing-an-android-sync-provider-part-1/

尽管有标题,但与 Google 的参考实现不同,我在此处的代码(独立项目)中看不到任何 SyncAdapter。

我认为您的异常是由其他原因引起的...

于 2010-06-28T17:33:41.527 回答