2010-06-21 4 views
8

J'essaie d'utiliser AccountManager pour stocker des informations de compte et j'ai implémenté un authentificateur, mais je continue d'obtenir des exceptions comme celle ci-dessous qui plante le téléphone. En comparant avec l'exemple de code, cela semble être dû au fait que je n'ai pas (ou que je ne souhaite pas particulièrement) un SyncAdapter et un service associé. Y at-il un truc à utiliser AccountManager sans ajouter un SyncAdapter?AccountManager sans SyncAdapter?

Cordialement

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 question – Lyn

Répondre

7

J'ai le même problème. J'ai implémenté un AccountAuthenticator, qui ajoute le compte directement dans la méthode addAccount, car je n'ai pas besoin de l'intervention de l'utilisateur dans mon cas.

Je reçois l'exception après avoir créé le compte et que vous souhaitez afficher l'écran de préférences "Comptes & sync". Ce n'est pas la cause de la création, car cela fonctionne avec le "Dev Tools> AccountsTester".

edit: Je pense que c'est l'explication, je vais l'essayer.

« [...] L'accident est causé par une hypothèse non documentée dans le code Android qui gère les comptes et la synchronisation. Ils sont très étroitement liés. Il se avère que les « paramètres Comptes et synchronisation » plug-in après avoir les comptes sur le système, utilise le service de contenu pour rechercher les services sur le système qui mettent en œuvre l'intention « android.content.SyncAdapter ».

Depuis notre code ne met pas en œuvre cela, la recherche est venu jusqu'à et puisque le code supposait que cela n'arriverait jamais, BAM, null pointeur exception et accident. [...] "de: http://osdir.com/ml/Android-Developers/2009-11/msg05288.html

2

En fin de compte, j'avais besoin d'ajouter un SyncAdapter et un ContentProvider, juste les implémentations de stub les plus simples, mais cela semblait faire l'affaire, je pense aussi que je n'ai pas trouvé le problème. t se produisent sur 2.2

Questions connexes