没有空指针异常时无法删除不需要的代码

时间:2014-07-19 18:12:22

标签: java android

我正在请求使用我的应用的用户的Facebook好友,然后查询每个人的数据库,看他们是否已经是我的应用中的朋友。

我从发出http请求的代码中修改了此代码。我不需要发出http请求但我无法摆脱这一行,或者它导致我的Facebook响应的空指针异常。

以下是我想摆脱的代码:

JSONObject json = jsonParser.makeHttpRequest(url_friend_status, "POST", params);

它会导致此行的空指针异常:

products = FriendResponse.getJSONArray("data");

在eclipse中它甚至会说“不使用局部变量json的值”,但似乎我的Facebook响应工作需要该行的某些部分?

以下是更大的代码:

    protected String doInBackground(String... args) {

        String fbid = fbID;

        // Building Parameters
        List<NameValuePair> params = new ArrayList<NameValuePair>();

        // I don't want this, but when I remove it, FriendResponse.toString causes null pointer exception
        JSONObject json = jsonParser.makeHttpRequest(url_friend_status, "POST", params);

        try {

            // getting JSON Array from facebook response
                products = FriendResponse.getJSONArray("data");

makeMeRequest:

private void makeMeRequest(final Session session) {
// Make an API call to get user data and define a 
// new callback to handle the response.

Request friendsrequest = Request.newMyFriendsRequest(session, 
        new Request.GraphUserListCallback() {
    @Override
    public void onCompleted(List<GraphUser> users, Response response) {
        // If the response is successful
        if (session == Session.getActiveSession()) {
            if (users != null) {

                FriendResponse = response.getGraphObject().getInnerJSONObject();

            }
        }
        if (response.getError() != null) {
            // Handle errors, will do so later.
        }
    }
});
friendsrequest.executeAsync();
}

0 个答案:

没有答案