我正在使用 parse.com,并且正在尝试使用 facebook 登录。每件事都运行顺利,直到登录过程完成并假设调用回调。发生的情况是(在 FB 登录过程完成后)应用程序崩溃,崩溃时没有显示任何消息,logcat 也没有显示任何信息。我完全迷路了。
这是我的代码:
fbloginButton.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View view)
{
//ProgressDialog progress = ProgressDialog.show(thisActivity, "Please wait", "Loading please wait..", true);
//login.fbLogin(thisActivity);
ParseFacebookUtils.logIn(Arrays.asList("email"), thisActivity, new LogInCallback()
{
@Override
public void done(ParseUser user, ParseException err)
{
if (user == null)
{
Log.d("MyApp", "Uh oh. The user cancelled the Facebook login.");
Toast toast = Toast.makeText(thisActivity, "Facebook login failed", Toast.LENGTH_LONG);
//progress.dismiss();
toast.show();
}
else if (user.isNew())
{
Log.d("MyApp", "User signed up and logged in through Facebook!");
Intent mainPage = new Intent(thisActivity, MainPage.class);
DBAdapter db = new DBAdapter(context);
db.open();
db.setLoginStatus(DBAdapter.LOGEDIN);
db.close();
//progress.dismiss();
thisActivity.startActivity(mainPage);
}
else
{
Log.d("MyApp", "User logged in through Facebook!");
Intent mainPage = new Intent(thisActivity, MainPage.class);
DBAdapter db = new DBAdapter(context);
db.open();
db.setLoginStatus(DBAdapter.LOGEDIN);
db.close();
//progress.dismiss();
thisActivity.startActivity(mainPage);
}
}
});
}
});
不知道这是否重要,但这里是onActivityResult
代码:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
ParseFacebookUtils.finishAuthentication(requestCode, resultCode, data);
}
我正在使用 facbook 3.0 sdk 并解析 1.3 sdk 版本。
编辑
*编辑: * 我想我找到了问题的根源,当我试图访问我正在获取此页面的声明时:类文件编辑器(logIn
)。此外,我通过从库中删除旧的 sdk 并添加新的 sdk 及其内容(总共 4 个文件和文件夹),将我的 parse sdk 版本从 1.2.4 更新到 1.3。ParseFacebookUtils
the jar of this class file belongs to container 'android dependencies' which does not allow modification to source attachments on its entries.
谢谢。