Android自定义Facebook登录集成

Android自定义Facebook登录集成,android,android-facebook,Android,Android Facebook,我找到了一个fb登录的例子。它正在崩溃 这就是错误: java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“java.lang.String com.facebook.Profile.getFirstName()” 我想做的只是点击按钮facebook将进入下一页,需要在新活动上显示个人资料图片和电子邮件ID。任何建议或链接都会很有帮助。请各位 }您面临什么问题?我只想将配置文件pic和用户名传递给下一个活动..单击登录按钮..您有一个空指针异常。错误发生

我找到了一个fb登录的例子。它正在崩溃 这就是错误: java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“java.lang.String com.facebook.Profile.getFirstName()”

我想做的只是点击按钮facebook将进入下一页,需要在新活动上显示个人资料图片和电子邮件ID。任何建议或链接都会很有帮助。请各位


}

您面临什么问题?我只想将配置文件pic和用户名传递给下一个活动..单击登录按钮..您有一个空指针异常。错误发生在返回空值的
Profile mProfile=Profile.getCurrentProfile()
上,因为
String firstName=mProfile.getFirstName()
导致崩溃,因为它试图从空对象调用函数。确保配置文件首先返回正确的值。谢谢..我将签出..感谢您的时间您面临什么问题?我只想将配置文件pic和用户名传递到下一个活动..单击登录按钮..出现空指针异常。错误发生在返回空值的
Profile mProfile=Profile.getCurrentProfile()
上,因为
String firstName=mProfile.getFirstName()
导致崩溃,因为它试图从空对象调用函数。确保配置文件首先返回正确的值。谢谢。我会退房。谢谢你的时间
public class MainActivity extends AppCompatActivity {
private CallbackManager callbackManager;
ImageView fb_img;
public static final String PROFILE_USER_ID = "USER_ID";
public static final String PROFILE_FIRST_NAME = "PROFILE_FIRST_NAME";
public static final String PROFILE_LAST_NAME = "PROFILE_LAST_NAME";
public static final String PROFILE_IMAGE_URL = "PROFILE_IMAGE_URL";

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    FacebookSdk.sdkInitialize(getApplicationContext());
    setContentView(R.layout.activity_main);
    callbackManager = CallbackManager.Factory.create();
    LoginButton mLoginButton = (LoginButton)findViewById(R.id.mLoginButton);
   // fb_img = (ImageView) findViewById(R.id.fb_img);


        // Callback registration
    mLoginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {

           String userLoginId = loginResult.getAccessToken().getUserId();
            Intent facebookIntent = new Intent(getApplicationContext(), SecondActivity.class);
            Profile mProfile = Profile.getCurrentProfile();
            String firstName = mProfile.getFirstName();
           String lastName = mProfile.getLastName();
           String userId = mProfile.getId().toString();
            String profileImageUrl = mProfile.getProfilePictureUri(96, 96).toString();
          facebookIntent.putExtra(PROFILE_USER_ID, userId);
            facebookIntent.putExtra(PROFILE_FIRST_NAME, firstName);
           facebookIntent.putExtra(PROFILE_LAST_NAME, lastName);
            facebookIntent.putExtra(PROFILE_IMAGE_URL, profileImageUrl);
            startActivity(facebookIntent);
        }


        @Override
        public void onCancel() {
            //  Toast.makeText(SignIn.this, "Login Cancel", Toast.LENGTH_LONG).show();
        }

        @Override
        public void onError(FacebookException exception) {
            // App code
            // Toast.makeText(SignIn.this, "Exceptional Error", Toast.LENGTH_LONG).show();
        }
    });


}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    callbackManager.onActivityResult(requestCode, resultCode, data);
}



}
public class SecondActivity extends  AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            FacebookSdk.sdkInitialize(getApplicationContext());
            setContentView(R.layout.activity_second);


            ImageView profileView = (ImageView) findViewById(R.id.profileView);
            TextView profileName = (TextView) findViewById(R.id.profileName);
            TextView profileUserId = (TextView) findViewById(R.id.profileUserId);
            String profileUserID = returnValueFromBundles(MainActivity.PROFILE_USER_ID);
           // String profileFirstName = returnValueFromBundles(MainActivity.PROFILE_FIRST_NAME);
           // String profileLastName = returnValueFromBundles(MainActivity.PROFILE_LAST_NAME);
            String profileImageLink = returnValueFromBundles(MainActivity.PROFILE_IMAGE_URL);
           // profileName.setText(profileFirstName + " " + profileLastName);
            profileUserId.setText("User ID : " + profileUserID);
            Picasso.with(SecondActivity.this).load(profileImageLink).into(profileView);
    }

    private String returnValueFromBundles(String key) {
            Bundle inBundle = getIntent().getExtras();
            String returnedValue = inBundle.get(key).toString();
            return returnedValue;

    }