的AccountManager没有SyncAdapter?AccountManager、SyncAdapter

2023-09-04 07:08:05 作者:醉卧

我想要使用的AccountManager来存储账户信息和已实施身份验证,但我一直喜欢的那一声下方的电话越来越例外。样品$ C $比较C此似乎是因为我没有(或特别想)一个SyncAdapter和相关服务。有一招,用的AccountManager不添加SyncAdapter?

问候

菲尔

  I / AuthenticatorActivity(8526):onAuthenticationResult(真)
I / AuthenticatorActivity(8526):finishLogin()
W / dalvikvm(8108):主题ID = 13:线程退出与未捕获的异常(组= 0X
4001b170)
E / AndroidRuntime(8108):未捕获的处理程序:螺纹android.server.ServerThread前
由于未捕获的异常iting
E / AndroidRuntime(8108):***异常系统进程。系统会崩溃。
E / AndroidRuntime(8108):显示java.lang.NullPointerException
E / AndroidRuntime(8108):在com.android.settings.ManageAccountsSettings.o
nSyncStateUpdated(ManageAccountsSettings.java:187)
E / AndroidRuntime(8108):在com.android.settings.ManageAccountsSettings.o
nAccountsUpdated(ManageAccountsSettings.java:244)
E / AndroidRuntime(8108):在android.accounts.AccountManager $ 10.run(有分
tManager.java:826)
E / AndroidRuntime(8108):在android.os.Handler.handleCallback(Handler.jav
答:587)
E / AndroidRuntime(8108):在android.os.Handler.dispatchMessage(Handler.ja
VA:92)
E / AndroidRuntime(8108):在android.os.Looper.loop(Looper.java:123)
E / AndroidRuntime(8108):在com.android.server.ServerThread.run(SystemSer
ver.java:435)
 

解决方案

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

我得到的异常后,我创建的帐户,并要查看的账户与同步preference屏幕。它不被创建引起,因为它的工作原理与开发工具> AccountsTester

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

[...]这次事故是由于在Android code无证假设 处理账户和同步。他们的非常的密切相关。它 事实证明,获得后的账户和同步设置插件 系统上的帐户,使用内容的服务扫描 实现该意图的系统上的服务 android.content.SyncAdapter。

由于我们的code没有实现这一点,搜索就空手而归 并且因为code以为这永远不会发生,BAM,空指针 异常和崩溃。 http://osdir.com/ml/Android-Developers/2009-11/msg05288.html

I'm trying to use AccountManager to store account information and have implemented an authenticator, but I keep getting exceptions like the below that crash the phone. Comparing with sample code this seems to be because I don't have (or particularly want) a SyncAdapter and associated service. Is there a trick to using AccountManager without adding a SyncAdapter?

宁夏银行线上审批信用贷款

Regards

Phil

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)

解决方案

I have the same problem. I implemented a AccountAuthenticator, that adds the Account directly in the addAccount-method, because I don't need user input in my case.

I get the Exception after I created the Account and want to view the "Accounts & sync" preference screen. It isn't cause by the creation, because it works with the "Dev Tools > AccountsTester".

edit: I think this is the explanation, I will try it.

"[...] The crash is caused by an undocumented assumption in the Android code that handles accounts and sync. They are very closely related. It turns out that the "Accounts and Sync" settings plugin after getting the accounts on the system, uses the content service to scan for services on the system that implement the intent "android.content.SyncAdapter".

Since our code doesn't implement this, the search came up empty handed and since the code assumed this would never happen, BAM, null pointer exception and crash. [...]" from: http://osdir.com/ml/Android-Developers/2009-11/msg05288.html