похоже, что googleCredentials.getAccessToken () всегда будет возвращать ненулевое значение, даже если токен cahce больше не действителен, и поэтому токен не обновлялся в коде. Применено следующее исправление, и теперь оно работает.
public static synchronized String getAccessToken()
{
if(googleCredentials!=null)
try {
googleCredentials.refresh();
} catch (IOException e) {
e.printStackTrace();
}
return googleCredentials.getAccessToken().getTokenValue();
}
Хотя на самом деле он не использует кэшированный токен, так как каждый раз он будет обновлять токен, но моя проблема на данный момент решена.