正如標題所暗示的,我在獲取Facebook用戶信息(例如名稱,用戶標識等)時得到空指針異常。Android Facebook sdk 4.0:獲取Facebook用戶信息時發生空異常?
我注意到,它發生是由於這些場景:
- 沒有Facebook應用程序,從Facebook的意圖安裝
- 用戶登錄(因爲沒有FB應用)。
- 首次驗證應用程序將導致空指針。
這是我在登錄onSucces代碼片段:
@Override
public void onSuccess(LoginResult loginResult) {
ProfileTracker profileTracker;
Profile profile = Profile.getCurrentProfile();
final SocialProfileModel userprofile = new SocialProfileModel();
if(profile == null){
Log.d("user profile", "null");
profileTracker = new ProfileTracker() {
@Override
protected void onCurrentProfileChanged(Profile oldProfile, Profile currentProfile) {
userprofile.setProfileID(currentProfile.getId());
userprofile.setFirst_name(currentProfile.getFirstName());
userprofile.setLast_name(currentProfile.getLastName());
userprofile.setMiddle_name(currentProfile.getMiddleName());
userprofile.setProfile_pic(currentProfile.getProfilePictureUri(200,200).toString());
}
};
}else {
userprofile.setProfileID(profile.getId());
userprofile.setUserName(profile.getName());
userprofile.setFirst_name(profile.getFirstName());
userprofile.setLast_name(profile.getLastName());
userprofile.setMiddle_name(profile.getMiddleName());
userprofile.setProfile_pic(profile.getProfilePictureUri(200,200).toString());
}
tv1.setText(profile.getId());
tv2.setText(profile.getName());
}
我所知道的東西像輪廓和令牌跟蹤器,但我不能讓我如何能夠利用這些正義這個問候!
任何幫助非常感謝! 謝謝!
編輯:
包括的是事件的堆棧跟蹤:
04-26 16:20:10.671 2580至2580年/ 包名/AndroidRuntime:致命異常:主 過程:packagename,PID:2580 java.lang.RuntimeException:將結果ResultInfo {who = null,request = 64206,result = -1,data = Intent {(has extras)}}傳遞給活動{packagen ame .MainActivity}:java.lang.NullPointerException:嘗試在android.app.ActivityThread.deliverResults(ActivityThread。)上的null對象引用 上調用虛擬方法'java.lang.String java.lang.String.toString()'。 (ActivityThread.java) at android.app.ActivityThread $ H.handleMessage(ActivityThread.java())在android.app.ActivityThread.OfficeHandleMessage(ActivityThread.java) :1533) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.Activity Thread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:886) at com .android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 引起:java.lang.NullPointerException:嘗試調用虛擬方法'java.lang.String java.lang.String.toString()'on a空對象參考 at com.agmostudio.socialsdk.socialsdk.MainActivity $ 1 $ 1.onSuccess(MainActivity.java:98) at com.agmostudio.socialsdk.socialsdk_lib.login.facebook.FacebookLogin.onSuccess(FacebookLogin.java:97) 在com.agmo在com.facebook.login.LoginManager.finishLogin(LoginManager。)上輸入:studio.socialsdk.socialsdk_lib.login.facebook.FacebookLogin.onSuccess(FacebookLogin.java:26) 。Java的:577) 在com.facebook.login.LoginManager.onActivityResult(LoginManager.java:216) 在com.facebook.login.LoginManager $ 1.onActivityResult(LoginManager.java:159) 在com.facebook.internal.CallbackManagerImpl .onActivityResult(CallbackManagerImpl.java:82) at com.agmostudio.socialsdk.socialsdk_lib.login.facebook.FacebookLogin.onActivityResult(FacebookLogin.java:65) at com.agmostudio.socialsdk.socialsdk_lib.login.SocialLoginManager.getOnActivityResult(SocialLoginManager .java:103) at com.agmostudio.socialsdk.socialsdk.MainActivity.onActivityResult(MainActivity.java:556) at android.app.A ctivity.dispatchActivityResult(Activity.java:6932) 在android.app.ActivityThread.deliverResults(ActivityThread.java:4085) 在android.app.ActivityThread.handleSendResult(ActivityThread.java:4132) 在android.app.ActivityThread。 -wrap20(ActivityThread.java) at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1533) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop (Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.in voke(本機方法) 在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:886) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
爲什麼不使用圖形API來獲取這些信息? –
使用圖形api和使用Profile有什麼區別? –
哦。並嘗試使用graphrequest.newrequestme。不工作! –