Деякі інші корисні поради щодо налагодження таких проблем.
Спочатку увімкніть детальний журнал для деяких тегів:
$ 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
Ви побачите журналювання таким чином:
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
Це означає, що для цього типу облікового запису не зареєстровано автентифікатор. Щоб побачити, які автентифікатори зареєстровані, переглядайте журнал під час встановлення пакета:
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
У мене виникла проблема, що дескриптор автентифікатора xml посилався на рядовий ресурс, який не був вирішений належним чином під час інсталяції:
android:accountType="@string/account_type"
Журнали показали
encountered new type: ServiceInfo: AuthenticatorDescription {type=@2131231194}, ...
Заміна його на звичайний рядок (не ресурс) вирішила проблему. Здається, це стосується Android 2.1.
android:accountType="com.example.account"