そして、あなたの時間と注意に前もって感謝します!
facebook sdkを使用する私のAndroidアプリはエミュレーターでうまく動作しますが、Samsung Galaxy S1とS2の両方のデバイスでonFacebookError()が発生します。より詳細なエラー出力情報も提供できればいいのですが、現在、それらをデバッグしてadblogcatで何が問題になっているのかを確認するためのデバイスが手元にありません。「onFacebookError」を表示するトーストが原因で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コードでアプリケーション設定を確認してください: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オブジェクトです。この場合も、このコードはエミュレーターで機能します。誰かがデバイスでそれを解決する方法を知っていますか?すぐにデバイスで調べて共有できるといいのですが。