Hi,

I'm calling the AccountManager like this:

accountManagerFutureOld = mAccountManager.getAuthToken(mAccount, "cl", 
false, null, null);

The Account being passed in is a Google account (type="com.google").

This works perfectly well for thousands of users of my app. But a handful of 
times each day, some users are getting this error

java.lang.IllegalArgumentException: unknown authTokenType
at 
android.accounts.AccountManager.convertErrorToException(AccountManager.java:1093)
at android.accounts.AccountManager.access$500(AccountManager.java:74)
at 
android.accounts.AccountManager$AmsTask$Response.onError(AccountManager.java:944)
at 
android.accounts.IAccountManagerResponse$Stub.onTransact(IAccountManagerResponse.java:69)
at android.os.Binder.execTransact(Binder.java:287)
at dalvik.system.NativeStart.run(Native Method)

This isn't an exception that the javadoc says comes from this method!

I think this is coming from the 
AbstractAccountAuthenticator.getAuthTokenLabel(IAccountAuthenticatorResponse, 
String) who in turn catches this exception from the concrete 
authenticator's getAuthTokenLabel(String) method. I've decompiled the gsf 
and looked in this method, but can't see any throw of 
an IllegalArgumentException in there. All it really does is call the 
PackageManager.getPermissionInfo() and retrieve attributes of the 
PermissionInfo returned.

Looking at the details for the reports, I *think* these reports are only 
coming from non google devices - for example the reported models include 
MID-7AS, XT800, EFREN II, etc. I don't see any mentions of nice devices like 
Desire or Nexus, etc.

At first I thought this was just people forcing my app onto a non gapps 
device, but the fact that they have a Google account on the device which can 
be happily enumerated and retrieved using the standard api (i.e. 
type-com.google) makes me think they at least have the full google services 
framework otherwise they wouldn't have the GoogleLoginService.

So does anyone know exactly what this error thinks is missing..? Is there 
any way to spot this before trying the call?

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to