其他分享
首页 > 其他分享> > Facebook android SDK 3.0-.getInnerJSONObject()处的NullPointerException

Facebook android SDK 3.0-.getInnerJSONObject()处的NullPointerException

作者:互联网

我正在使用适用于Android的Facebook SDK 3.0(最终版).当我尝试在登录的用户供稿上发布新状态时,有时(并非总是)在.getInnerJSONObject()处收到NullPointerException.以下是我在新的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();
                }
            }

解决方法:

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

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

Response有三种构造函数:一种采用GraphObject,一种采用GraphObjectList,另一种采用FacebookRequestError,并且所有字段都是最终的.因此,其中只有一个在任何Response对象上都不能为空.

标签:nullpointerexception,facebook-android-sdk,android
来源: https://codeday.me/bug/20191031/1976207.html