Хорошо, я получаю IllegalArgumentException
в точке, где это не должно быть.
У меня есть пользовательское расширение Account
, которое сохраняется с помощью AccountManager:
// Method inside a custom extension of Account
public boolean save(AccountManager manager) {
removeAll(manager);
boolean result = manager.addAccountExplicitly(this, null, toBundle());
manager.setUserData(this, KEY_1, value1);
manager.setUserData(this, KEY_2, value2);
manager.setUserData(this, KEY_3, value3);
return result;
}
Ключи являются постоянными строковыми значениями, но приложение по-прежнему выдает:
java.lang.IllegalArgumentException: key is null
Я должен сказать, что я прикрепляю пользовательские данные только таким образом, потому что использую:
manager.addAccountExplicitly(this, null, toBundle());
не похоже, чтобы прикрепить значения. Ключи требуют специального имени?
Кто-нибудь имел эту проблему раньше?
Обновление:
Он попадает внутрь manager.setUserData()
, который выглядит следующим образом (код Android):
public void setUserData(final Account account, final String key, final String value) {
if (account == null) throw new IllegalArgumentException("account is null");
if (key == null) throw new IllegalArgumentException("key is null");
try {
mService.setUserData(account, key, value);
} catch (RemoteException e) {
// won't ever happen
throw new RuntimeException(e);
}
}
Когда я "вхожу" в этот метод с помощью eclipse, я получаю это в перспективе отладки:
![enter image description here](https://i.stack.imgur.com/83KwX.png)
Значения не равны нулю> o <</p>