引起:java.lang.IllegalArgumentException:value可能不为null。将数据放入ParseObject时

时间:2016-04-19 19:09:55

标签: android parse-platform

我正在关注Udemy的课程,我正在创建一个匿名用户的部分,在一个Activity之后,尝试将AnonUsername设置为ParseObject中的put方法。我使用时在标题中出现上述错误:

<img><button></img>

但是当我使用时,我得到了“com.parse.ParseUser ....”:

put("riderUsername", ParseObject.getCurrentUser().getUsername());

这是我按下按钮将其发送到Parse时的代码:

put("riderUsername", ParseObject.getCurrentUser());

这是我在第一个Activity中创建Anon用户的地方:

public void toggleSearch(View view){

    ParseObject request = new ParseObject("Requests");
    request.put("requestUsername", ParseUser.getCurrentUser().toString());

    ParseACL acl = new ParseACL();
    acl.setPublicWriteAccess(true);
    acl.setPublicReadAccess(true);

    request.setACL(acl);

    request.saveInBackground(new SaveCallback() {
        @Override
        public void done(ParseException e) {
            if(e == null){
                driverStatus.setText("Searching Drivers...");
            } else {
                driverStatus.setText("Error");
                e.printStackTrace();
            }
        }
    });

}

尝试搜索但找不到任何东西。只是希望别人知道我做错了。谢谢。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你可以

put("riderUsername", ParseObject.getCurrentUser());

没有问题,但是这个失败并抛出异常:

put("riderUsername", ParseObject.getCurrentUser().getUsername());

当然,ParseObject.getCurrentUser()不是null,因为你可以存储它,也因为ParseObject.getCurrentUser().getUsername()会抛出java.lang.NullPointerException

因此,唯一的可能性是存储在当前用户中的用户名为null。

检查参数ParseUser user的登录回调中的用户名是否为空。您也可以使用此方法:

ParseUser.getUsername()