我有一个Android应用程序,该应用程序除其他外还可以在Facebook上发布更新.
我根据this示例创建了代码,它工作得很好.我的代码和上面的链接中的代码唯一的区别是,我还扩展了onActivityResult,如Android版官方Facebook SDK所述.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
facebookClient.authorizeCallback(requestCode, resultCode, data);
}
但是,有时在onActivityResult()方法中调用“ facebook.authorizeCallback()”的行上会出现空指针异常.
这在我的任何手机或仿真器上都从未发生过.但是,我一直在收到用户崩溃报告,大部分来自Droid和T-Mobile myTouch 3G手机.我尝试了很多,但无法重现该问题.任何机构都知道可能出什么问题吗?
解决方法:
通过查看Facebook.java代码,似乎DialogListener并作为类中的私有参数保存…当调用authorizeCallback()时,您假定DialogListener退出并且不为null.但是,如果您的电话内存不足(例如我的G1内存不足),您的通话活动将被杀死,以腾出内存供Facebook登录过程使用,从而在您调用autherizeCallback函数时擦除DialogListener的情况下,您将获得空指针异常或忽略回调.
这可能是导致您出现问题的原因.