Quelques autres conseils utiles pour déboguer des problèmes comme celui-ci.
Commencez par activer la journalisation détaillée pour certaines balises:
$ adb shell setprop log.tag.AccountManagerService VERBOSE
$ adb shell setprop log.tag.Accounts VERBOSE
$ adb shell setprop log.tag.Account VERBOSE
$ adb shell setprop log.tag.PackageManager VERBOSE
Vous verrez une journalisation comme celle-ci:
V/AccountManagerService: initiating bind to authenticator type com.example.account
V/Accounts: there is no service connection for com.example.account
V/Accounts: there is no authenticator for com.example.account, bailing out
D/AccountManagerService: bind attempt failed for Session: expectLaunch true, connected false, stats (0/0/0), lifetime 0.002, addAccount, accountType com.example.account, requiredFeatures null
Ce qui signifie qu'aucun authentificateur n'est enregistré pour ce type de compte. Pour voir quels authentificateurs sont enregistrés, regardez le journal lors de l'installation du package:
D/PackageManager: encountered new type: ServiceInfo: AuthenticatorDescription {type=com.example.account}, ComponentInfo{com.example/com.example.android.AuthenticatorService}, uid 10028
D/PackageManager: notifyListener: AuthenticatorDescription {type=com.example.account} is added
J'ai eu le problème que le descripteur xml d'authentificateur faisait référence à une ressource de chaîne qui n'a pas été résolue correctement lors de l'installation:
android:accountType="@string/account_type"
Les journaux ont montré
encountered new type: ServiceInfo: AuthenticatorDescription {type=@2131231194}, ...
Le remplacer par une chaîne normale (pas de ressource) a résolu le problème. Cela semble être spécifique à Android 2.1.
android:accountType="com.example.account"