并提前感谢您的时间和关注!
我使用 facebook sdk 的 android 应用程序在模拟器上运行良好,但我在三星 Galaxy S1 和 S2 设备上都得到了 onFacebookError() 。我希望我还可以为您提供更详细的错误输出信息,但我目前手头没有这些设备来调试它们并检查 adb logcat 出了什么问题。我知道 onFacebookError() 方法正在运行,因为我放在那里的 Toast 显示“onFacebookError”。
在我设法拿到这些手机并调查错误并将它们发布到这里之前,有人遇到过这个问题吗?当我在这里搜索这个问题时,我读到有人认为这是因为设备上安装了官方的 facebook 应用程序。这是相关的吗?
敬酒 e.getMessage() 以获取如下错误详细信息:
@Override
public void onFacebookError(FacebookError e) {
// TODO Auto-generated method stub
//Toast.makeText(MemoFriendActivity.this, "fbError", Toast.LENGTH_SHORT).show();
Toast.makeText(MemoFriendActivity.this, "MSG: "+e.getMessage()+ " CODE: "+e.getErrorCode(), Toast.LENGTH_LONG).show();
}
在 S2 设备上显示此消息:“MSG: ivalid_key:Android 密钥不匹配。您的密钥“XXX”与您的应用程序设置中指定的允许密钥不匹配。请在http://www.facebook.com/developers CODE检查您的应用程序设置: 0"
代码:
public void onClick(View v) {
// TODO Auto-generated method stub
if (MyUtil.fb.isSessionValid())
{
//button close session - log out of facebook
try {
MyUtil.fb.logout(getApplicationContext());
updateGuiAccordingToState();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else
{
//login to facebook
MyUtil.fb.authorize(this, new DialogListener() {
@Override
public void onFacebookError(FacebookError e) {
// TODO Auto-generated method stub
Toast.makeText(MemoFriendActivity.this, "fbError", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(DialogError e) {
// TODO Auto-generated method stub
Toast.makeText(MemoFriendActivity.this, "OnError", Toast.LENGTH_SHORT).show();
}
@Override
public void onComplete(Bundle values) {
// TODO Auto-generated method stub
Editor editor = sp.edit();
editor.putString("access_token", MyUtil.fb.getAccessToken());
editor.putLong("access_expires", MyUtil.fb.getAccessExpires());
editor.commit();
getUsername();
updateGuiAccordingToState();
}
@Override
public void onCancel() {
// TODO Auto-generated method stub
Toast.makeText(MemoFriendActivity.this, "OnCancel", Toast.LENGTH_SHORT).show();
}
});
}
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
MyUtil.fb.authorizeCallback(requestCode, resultCode, data);
}
My.Util.fb 是一个静态 Facebook 对象。同样,此代码适用于模拟器。有人知道如何在设备上解决它吗?我希望我能尽快在设备上查找并分享。