在我的应用程序中,我使用Parse.com和Facebook登录,并且Facebook登录正在运行,现在我正在尝试保存签名用户的电子邮件。我这样做是这样的:Android - Parse.com保存对象时出现NullPointerException
Request.newMeRequest(ParseFacebookUtils.getSession(), new Request.GraphUserCallback() {
// callback after Graph API response with user object
@Override
public void onCompleted(GraphUser user, Response response) {
if (user != null) {
String email = user.getProperty("email").toString();
Log.i(TAG, email);
ParseUser currentUser = ParseUser.getCurrentUser();
currentUser.put("email", email);
currentUser.saveInBackground();
}
}
}).executeAsync()
但是当我跑我得到java.lang.NullPointerException
在该行currentUser.put("email", email);
但我在此之前登录电子邮件,它不为空,我有解析我的User类电子邮件属性,所以我不知道这是为什么?
这里的代码来设置FB登录你应该需要它,它正在工作,但以防万一。
public void onLoginClick(View v) {
progressDialog = ProgressDialog.show(LoginActivity.this, "", "Logging in...", true);
final List<String> permissions = Arrays.asList("public_profile", "email");
// NOTE: for extended permissions, like "user_about_me", your app must be reviewed by the Facebook team
// (https://developers.facebook.com/docs/facebook-login/permissions/)
ParseFacebookUtils.logIn(permissions, this, new LogInCallback() {
@Override
public void done(ParseUser user, ParseException err) {
progressDialog.dismiss();
if (user == null) {
Log.d(TAG, "Uh oh. The user cancelled the Facebook login.");
} else if (user.isNew()) {
Log.d(TAG, "User signed up and logged in through Facebook!");
showSelectSchoolActivity();
} else {
Log.d(TAG, "User logged in through Facebook!");
showMainActivity();
}
}
});
感谢您的帮助:)
'Parser.getCurrentUser()'返回null? – RandomQuestion 2014-12-04 04:30:45
尝试将ParseUser代码放入try-catch块。 – 2014-12-04 04:32:22
@RandomQuestion我加了这行'Log.i(TAG,currentUser.toString());'并且错误在于它,所以我认为你是对的,我该如何解决这个问题? – iqueqiorio 2014-12-04 04:33:52