3

我正在使用适用于 Android 的 Facebook SDK 3.0(最终版本)。当我尝试在已登录用户的提要上发布新状态时,我有时(并非总是)NullPointerException得到一个。.getInnerJSONObject()以下是我在里面使用的代码new Request.Callback(){}

public void onCompleted(Response response) {
                JSONObject graphResponse = response
                                           .getGraphObject()
                                           .getInnerJSONObject();
                String postId = null;
                try {
                    postId = graphResponse.getString("id");
                } catch (JSONException e) {
                    Log.d("", "JSON error "+ e.getMessage());
                }
                FacebookRequestError error = response.getError();
                if (error != null) {
                    Toast.makeText(SessionLoginSampleActivity.this, error.getErrorMessage(), Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(SessionLoginSampleActivity.this, "Post successful " + postId, Toast.LENGTH_LONG).show();
                }
            }
4

2 回答 2

3

如果请求中有错误,则 response.getGraphObject() 返回 null。

使用 Response 的代码应始终检查 response.getError() 在访问 getGraphObject() 之前是否返回 null。

Response 的构造函数有 3 个:一个接受 GraphObject,一个接受 GraphObjectList,一个接受 FacebookRequestError,所有字段都是 final。因此,在任何 Response 对象上,其中只有一个可以是非空的。

于 2012-12-18T20:21:45.560 回答
1

我经历过这一点,只是为了分享我所拥有的,也许提供的 url 或链接无效,这就是它给出 nullpointerexception 的原因。希望这会帮助其他可以遇到这种情况的人。

于 2013-05-16T05:52:14.000 回答