0
好吧,我得到一個IllegalArgumentException
它不應該。AccountManager 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
我不得不說,我m僅以這種方式附加用戶數據,因爲使用:
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我得到這個在調試方面:
個的非空值> 0 <
哪一行是錯誤?在你調用它之前打印出你傳遞的所有參數。 – Kevin
哪裏*正確*是拋出異常? –
用請求的信息更新了問題 – pablisco