2010-06-21 20 views
8

Estoy tratando de usar AccountManager para almacenar información de la cuenta y he implementado un autenticador, pero sigo recibiendo excepciones como la que se encuentra abajo que bloquea el teléfono. Comparando con el código de muestra esto parece ser porque no tengo (o particularmente quiero) un SyncAdapter y un servicio asociado. ¿Hay algún truco para usar AccountManager sin agregar un SyncAdapter?AccountManager sin SyncAdapter?

Saludos

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) 
+0

briliiant pregunta – Lyn

Respuesta

7

que tienen el mismo problema. Implementé AccountAuthenticator, que agrega la cuenta directamente en el método addAccount, porque no necesito la entrada del usuario en mi caso.

Recibo la excepción después de crear la cuenta y quiero ver la pantalla de preferencias "Cuentas &". No es causa de la creación, porque funciona con las "Herramientas Dev> AccountsTester".

editar: Creo que esta es la explicación, lo intentaré.

"[...] El accidente es causado por un supuesto indocumentado en el código de Android que se encarga de cuentas y sincronización. Son muy estrechamente relacionados. Se resulta que los 'ajustes de Cuentas y sincronización' plug-in después de conseguir las cuentas en el sistema, utiliza el servicio de contenidos para buscar servicios en el sistema que implementan la intención "android.content.SyncAdapter".

Dado que nuestro código no implementa esta, la búsqueda vino con las manos vacías y dado que el código asumió que esto nunca sucedería, BAM, puntero nulo excepción y bloqueo. [...] "de: http://osdir.com/ml/Android-Developers/2009-11/msg05288.html

2

Al final tuve que agregar un Adaptador de sincronización y un Proveedor de contenido. Solo las implementaciones más breves, pero parecía hacer el trabajo. También creo que descubrí que el problema no t ocurren en 2.2

Cuestiones relacionadas