登录ActivityResult Android后Facebook SDK应用程序崩溃

登录ActivityResult Android后Facebook SDK应用程序崩溃,android,android-fragments,facebook-sdk-4.0,facebook-sdk-4.x,Android,Android Fragments,Facebook Sdk 4.0,Facebook Sdk 4.x,我允许在我的应用程序中使用facebook登录,但当我在facebook登录webview中按Ok时会崩溃,当我再次打开应用程序时,我可以在屏幕上看到注销按钮 OnActivityResult中出现错误导致崩溃 这是我的日志 My LoginFragment.java loginButton=(loginButton)findviewbyd(R.id.login_按钮); setFragment(this) setOnClickListener(新的OnClickListener(){ @覆盖

我允许在我的应用程序中使用facebook登录,但当我在facebook登录webview中按Ok时会崩溃,当我再次打开应用程序时,我可以在屏幕上看到注销按钮

OnActivityResult中出现错误导致崩溃

这是我的日志

My LoginFragment.java

loginButton=(loginButton)findviewbyd(R.id.login_按钮); setFragment(this)

setOnClickListener(新的OnClickListener(){

@覆盖
公共void onClick(视图v){
checkLoginwithFB();
}
});
私有void checkLoginwithFB(){
LoginManager.getInstance().registerCallback(callbackManager,
新建FacebookCallback(){
成功时公共无效(LoginResult LoginResult)
{   
LoginFragment.this.user=用户;
Profile Profile=Profile.getCurrentProfile();
RC_FB_SIGN_IN=loginButton.getRequestCode();
Log.e(“==FIrstname===>”,“==FIrstname===>”+profile.getFirstName());
if(profile!=null){
最终字符串ID=profile.getId();
最终字符串名称=profile.getName();
Log.e(“==ID==>”,“==ID===>”+profile.getId());
Log.e(“===FIrstname===>”,“===FIrstname===>”+profile.getName());
//有可能是我们在等待这个.user
//为了发布一个
//状态更新。
//如果(用户!=null){
Log.e(标签、ID);
Log.e(标签、名称);
GraphRequest request=GraphRequest.NewMereRequest(AccessToken.getCurrentAccessToken(),new GraphRequest.GraphJSONObjectCallback())
{
@凌驾
未完成的公共void(JSONObject对象,
GraphResponse(反应){
Map Map=newhashmap();
map.put(“url”,url.LOGIN\u与\u FB\u url);
//map.put(“email”,”);
地图。放置(“名称”,名称);
map.put(“uid”,ID);
新控制器(mainActivity,新的AsyncTaskCompleteListener(){
@凌驾
已完成的公用void onTaskCompleted(字符串文档,
int请求代码){
试一试{
JSONObject JSONObject=新的JSONObject(文档);
如果(jsonObject.getInt(“代码”)==0{
用户=新用户();
long l=long.parseLong(ID);
user.userID=jsonObject.getInt(“user_id”);
user.name=名称;
user.email=“”;
user.isLogin=true;
CoddyzUtils.saveUser(main活动,用户);
if(isReqLogin){
mainActivity.setResult(Activity.RESULT\u OK);
mainActivity.finish();
}否则{
goToDeshboard(用户);
}
}否则{
}
//Toast.makeText(mainActivity,object.getString(“message”)+“”,Toast.LENGTH_LONG.show();
}捕获(例外e){
e、 printStackTrace();
}
}
},地图);
}});
Bundle参数=新Bundle();
parameters.putString(“字段”、“id、名称”);
请求。设置参数(参数);
request.executeAsync();
//Log.e(标记,user.asMap().toString());
//}其他{
//Toast.makeText(getActivity(),“Ankitsir”,
//Toast.LENGTH_LONG).show();
// }
}//Toast.makeText(main活动,“获取”+
//user.asMap().toString(),Toast.LENGTH_LONG).show();
否则{
}
}
@凌驾
公开作废{
//TODO自动生成的方法存根
}
@凌驾
public void onError(facebook异常错误){
System.out.println(“onError”);
Log.v(“LoginActivity”,error.getCause().toString());
}
});
}
}
@凌驾
ActivityResult上的公共void(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
if(FacebookSdk.isFacebookRequestCode(requestCode)){
Log.d(标记“Callback:+CallbackManagerImpl.RequestCodeOffset.Login.toRequestCode());
Log.d(标记“onActivityResult:+requestCode+”:“+resultCode+”:“+data”);
callbackManager.onActivityResult(请求代码,
结果代码,数据);
}
}
03-04 21:30:57.923:E/AndroidRuntime(12641):致命异常:主
03-04 21:30:57.923:E/AndroidRuntime(12641):进程:com.updatemania.foozup,PID:12641
03-04 21:30:57.923:E/AndroidRuntime(12641):java.lang.RuntimeException:传递结果R失败
        @Override
        public void onClick(View v) {
            checkLoginwithFB();

        }
    });

private void checkLoginwithFB() {

 LoginManager.getInstance().registerCallback(callbackManager,
                new FacebookCallback<LoginResult>() {
            public void onSuccess(LoginResult loginResult)
            {   
                LoginFragment.this.user = user;
                Profile profile = Profile.getCurrentProfile();
                RC_FB_SIGN_IN = loginButton.getRequestCode();
                Log.e("===FIrstname===>", "===FIrstname===>"+profile.getFirstName());
                if(profile !=null){
                    final String ID= profile.getId();
                    final String Name = profile.getName();

                    Log.e("===ID===>", "===ID===>"+profile.getId());
                    Log.e("===FIrstname===>","===FIrstname===>"+profile.getName());

                // It's possible that we were waiting for this.user to be
                // populated in order to post a
                // status update.
                //if (user != null) {

                    Log.e(TAG, ID);
                    Log.e(TAG,Name);
                     GraphRequest request = GraphRequest.newMeRequest(AccessToken.getCurrentAccessToken(), new GraphRequest.GraphJSONObjectCallback()
                    {


                        @Override
                        public void onCompleted(JSONObject object,
                                GraphResponse response) {
                            Map<String, String> map = new HashMap<String, String>();
                            map.put("url", URLS.LOGIN_WITH_FB_URL);
                            // map.put("email", "");
                            map.put("name", Name);
                            map.put("uid", ID);
                            new Controller(mainActivity, new AsyncTaskCompleteListener() {

                                @Override
                                public void onTaskCompleted(String doc,
                                        int requestCode) {
                                    try {
                                        JSONObject jsonObject = new JSONObject(doc);
                                        if (jsonObject.getInt("code") == 0) {           
                                            User user = new User();
                                            long l = Long.parseLong(ID);
                                            user.userID = jsonObject.getInt("user_id");                                 
                                            user.name = Name;
                                            user.email = "";
                                            user.isLogin = true;
                                            CoddyzUtils.saveUser(mainActivity, user);
                                            if (isReqLogin) {
                                                mainActivity.setResult(Activity.RESULT_OK);
                                                mainActivity.finish();
                                            } else {
                                                goToDeshboard(user);
                                            }
                                        }else{

                                        }

                                        //Toast.makeText(mainActivity, object.getString("message") + "", Toast.LENGTH_LONG).show();

                                    } catch (Exception e) {

                                        e.printStackTrace();
                                    }

                                }

                            },map);


                        }});

                    Bundle parameters = new Bundle();
                    parameters.putString("fields", "id,name");
                    request.setParameters(parameters);
                    request.executeAsync();
                //  Log.e(TAG, user.asMap().toString());

                            // }else{
                            // Toast.makeText(getActivity(), "Ankitsir",
                            // Toast.LENGTH_LONG).show();
                            // }
            }       // Toast.makeText(mainActivity, "FETCH" +
                    // user.asMap().toString(), Toast.LENGTH_LONG).show();
                 else {

                    }
            }



            @Override
            public void onCancel() {
                // TODO Auto-generated method stub

            }

            @Override
            public void onError(FacebookException error) {
                System.out.println("onError");
                Log.v("LoginActivity", error.getCause().toString());

            }

        });

    }

}




@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {

         super.onActivityResult(requestCode, resultCode, data);


         if (FacebookSdk.isFacebookRequestCode(requestCode)) {


            Log.d(TAG,"Callback:"+CallbackManagerImpl.RequestCodeOffset.Login.toRequestCode());
             Log.d(TAG, "onActivityResult:" + requestCode + ":" + resultCode + ":" + data);
             callbackManager.onActivityResult(requestCode,
                        resultCode, data);

         }



    }

 03-04 21:30:57.923: E/AndroidRuntime(12641): FATAL EXCEPTION: main
03-04 21:30:57.923: E/AndroidRuntime(12641): Process: com.updatemania.foozup, PID: 12641
03-04 21:30:57.923: E/AndroidRuntime(12641): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=129742, result=-1, data=Intent { (has extras) }} to activity {com.updatemania.foozup/com.example.foo.LoginSignUpActivity}: java.lang.NullPointerException
03-04 21:30:57.923: E/AndroidRuntime(12641):    at android.app.ActivityThread.deliverResults(ActivityThread.java:3532)
03-04 21:30:57.923: E/AndroidRuntime(12641):    at android.app.ActivityThread.handleSendResult(ActivityThread.java:3575)
03-04 21:30:57.923: E/AndroidRuntime(12641):    at android.app.ActivityThread.access$1300(ActivityThread.java:139)
03-04 21:30:57.923: E/AndroidRuntime(12641):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1341)
03-04 21:30:57.923: E/AndroidRuntime(12641):    at android.os.Handler.dispatchMessage(Handler.java:102)
03-04 21:30:57.923: E/AndroidRuntime(12641):    at android.os.Looper.loop(Looper.java:149)
03-04 21:30:57.923: E/AndroidRuntime(12641):    at android.app.ActivityThread.main(ActivityThread.java:5257)
03-04 21:30:57.923: E/AndroidRuntime(12641):    at java.lang.reflect.Method.invokeNative(Native Method)
03-04 21:30:57.923: E/AndroidRuntime(12641):    at java.lang.reflect.Method.invoke(Method.java:515)
03-04 21:30:57.923: E/AndroidRuntime(12641):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
03-04 21:30:57.923: E/AndroidRuntime(12641):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
03-04 21:30:57.923: E/AndroidRuntime(12641):    at dalvik.system.NativeStart.main(Native Method)
03-04 21:30:57.923: E/AndroidRuntime(12641): Caused by: java.lang.NullPointerException
03-04 21:30:57.923: E/AndroidRuntime(12641):    at example.foo.fragments.LoginFragment$2.onSuccess(LoginFragment.java:242)
03-04 21:30:57.923: E/AndroidRuntime(12641):    at example.foo.fragments.LoginFragment$2.onSuccess(LoginFragment.java:1)
03-04 21:30:57.923: E/AndroidRuntime(12641):    at com.facebook.login.LoginManager.finishLogin(LoginManager.java:510)
03-04 21:30:57.923: E/AndroidRuntime(12641):    at com.facebook.login.LoginManager.onActivityResult(LoginManager.java:194)
03-04 21:30:57.923: E/AndroidRuntime(12641):    at com.facebook.login.LoginManager$1.onActivityResult(LoginManager.java:141)
03-04 21:30:57.923: E/AndroidRuntime(12641):    at com.facebook.internal.CallbackManagerImpl.onActivityResult(CallbackManagerImpl.java:82)
03-04 21:30:57.923: E/AndroidRuntime(12641):    at com.updatemania.foozup.fragments.LoginFragment.onActivityResult(LoginFragment.java:377)
03-04 21:30:57.923: E/AndroidRuntime(12641):    at android.support.v4.app.FragmentActivity.onActivityResult(FragmentActivity.java:156)
03-04 21:30:57.923: E/AndroidRuntime(12641):    at android.app.Activity.dispatchActivityResult(Activity.java:5603)
03-04 21:30:57.923: E/AndroidRuntime(12641):    at android.app.ActivityThread.deliverResults(ActivityThread.java:3528)
03-04 21:30:57.923: E/AndroidRuntime(12641):    ... 11 more