java - 空指针异常 : when trying to get user location from Facebook

标签 java android facebook facebook-graph-api facebook-sdk-3.0

我正在尝试从 Facebook 获取用户位置,但获取空指针异常 (NPE) 和日志如下所示:

D/dalvikvm(3116): GC_FOR_ALLOC freed 413K, 15% free 2863K/3336K, paused 32ms, total 32ms
W/System.err(3116): java.lang.NullPointerException
W/System.err(3116):     at com.example.loginfb.MainActivity$2.onUserInfoFetched(MainActivity.java:50)
W/System.err(3116):     at com.facebook.widget.LoginButton$2.onCompleted(LoginButton.java:770)
W/System.err(3116):     at com.facebook.Request$1.onCompleted(Request.java:280)
W/System.err(3116):     at com.facebook.Request$4.run(Request.java:1658)
W/System.err(3116):     at android.os.Handler.handleCallback(Handler.java:730)
W/System.err(3116):     at android.os.Handler.dispatchMessage(Handler.java:92)
W/System.err(3116):     at android.os.Looper.loop(Looper.java:137)
W/System.err(3116):     at android.app.ActivityThread.main(ActivityThread.java:5103)
W/System.err(3116):     at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err(3116):     at java.lang.reflect.Method.invoke(Method.java:525)
W/System.err(3116):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
W/System.err(3116):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
W/System.err(3116):     at dalvik.system.NativeStart.main(Native Method)

MainActivity.java:-

public void onUserInfoFetched(GraphUser user) {
                try {
                if (user != null) {
                    String strName = user.getFirstName();
                    String strLocation = user.getLocation().toString();

                    textUserName.setText("Welcome, " + user.getName()) ;
                    textUserInformation.setText
                    (
                            "Name: " + strName + "\n"
                            +
                            "Location: " + strLocation
                    );

                   } else {
                       textUserName.setText("You are not Logged In");
                       textUserInformation.setText("");

                   }
                }
                    catch(Exception e)
                {
                    e.printStackTrace();
                }
            }
        });

我想我遇到了这个问题,因为没有在 Facebook 上提供位置详细信息,但我想显示“未提及的地址”,以防用户未提供给 Facebook > 以及其他详细信息。

最佳答案

除以String strLocation = user.getLocation().toString();:

Object userLocation = user.getLocation();
String strLocation = (userLocation != null)? userLocation.toString() : "Address not mentioned";

我不知道 Location 对象的类型,但如果 user.getLocation() 返回 null,您将遇到 java.lang.NullPointerException 与您的代码。

关于java - 空指针异常 : when trying to get user location from Facebook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25383381/

相关文章:

java - ZuulProxy 未通过以 Brixton.RC1 开头的授权 header

java - 带有 "SupportActivity cannot be resolved"的操作栏库 4.0.2

java - 无法检索当前小区的 CellID 和 LAC

facebook - og :ttl of facebook sharing? 的最大值是多少

java - 如何使用android sqlite数据库更新一行中的多列?

java - 简单的Java计算器(需要小数帮助)

jquery - Facebook Graph API 使用 Ajax 获取 JSON

php - 多平台 - 在 Facebook 上发布到好友时间线并发送邀请

java - Java 包可以与 .NET 中的什么进行比较?

java - 在字符串数组中添加数字 - android