我正在遵循简单的教程:https://developers.facebook.com/docs/android/getting-started/在我使一切正常工作后,我遇到了 onCompleted
回调方法的问题。
我的代码如下所示:
Request.newMeRequest(session, new Request.GraphUserCallback() {
// callback after Graph API response with user object
@Override
public void onCompleted(GraphUser user, Response response) {
if (user != null) {
TextView welcome = (TextView) findViewById(R.id.welcome);
welcome.setText("Hello " + user.getName() + "!");
}
}
}).executeAsync();
因为教程中的 executeMeRequestAsync
方法已被弃用。一切都顺利进行,并且 user != null
计算结果为 true,因此我进入了 block 内部,但是在 user.getName()
上我总是get NullPointerException
,我在调试 GraphUser 实例时进行了检查,它填充了空值。我可能做错了什么?可能是应用程序配置有问题吗?我已经生成了新的 KeyHash 并且它是正确的,所以我不知道还有什么是不正确的。
最佳答案
如果 findViewById(R.id.welcome)
返回 null,则可能会引发 NullPointerException
。您也可以修改逻辑来检查欢迎情况:
public void onCompleted(GraphUser user, Response response) {
TextView welcome = (TextView) findViewById(R.id.welcome);
if(user != null && welcome != null) {
welcome.setText("Hello " + user.getName() + "!");
}
else {
// Log it in some way
}
}
关于java - Facebook SDK for Android 空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21803513/