わかりました、私は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 でこのメソッドに「入る」と、デバッグ パースペクティブで次のようになります。
値は null ではありません >o<