我已经实现了Facebook登录,并且它在某些设备/ AVD上正常工作。我的开发设备是一个姜饼手机,但用4.1.1设备进行测试,它根本不会登录。按下Facebook按钮后,它会显示一个空白屏幕(尝试连接Facebook),1-2秒钟后回到主屏幕。此外,没有错误在Logcat中被烘烤或显示。哦,Facebook应用程序安装在设备中...任何想法?某些设备上的Facebook登录失败
UPDATE:
我启用了日志记录由马克Venzke在每次登录尝试提出并使用this过程中,我得到了这样的警告(两次)(注:用的HTC One的电话测试):
07-05 20:14:50.582: W/PackageManager(605): Unable to load service info ResolveInfo{4171dbf0 com.htc.socialnetwork.facebook.remote.FacebookSyncService p=0 o=0 m=0x108000}
请注意com.htc.socialnetwork.facebook.remote.FacebookSyncService行,那么HTC设备还需要额外的步骤吗?
另外,我安装在那里进行登录验证码:
private void onSessionStateChange(Session session, SessionState state, Exception exception) {
if (isResumed) {
FragmentManager manager = getSupportFragmentManager();
int backStackSize = manager.getBackStackEntryCount();
for (int i = 0; i < backStackSize; i++) {
manager.popBackStack();
}
com.facebook.Settings.addLoggingBehavior(LoggingBehavior.REQUESTS);
if (state.isOpened()) {
Bundle params = new Bundle();
params.putString("fields", "id");
params.putString("limit", "1");
Request request = new Request(Session.getActiveSession(), "me", params, HttpMethod.GET, new Callback()
{
@Override
public void onCompleted(Response response)
{
if (response != null)
{
Log.d("AuthGraphResponse", response.toString());
long id;
try {
id = response.getGraphObject().getInnerJSONObject().getLong("id");
app.setFacebookId(id);
Log.d("UserID", Long.valueOf(id).toString());
} catch (JSONException e) {
e.printStackTrace();
}
}
}
});
RequestAsyncTask task = new RequestAsyncTask(request);
task.execute();
showFragment(AUTH, false);
} else if (state.isClosed()) {
showFragment(UNAUTH, false);
}
}
}
更新2:
难道HTC在重命名所有默认的Facebook应用程序的包名(或其中的一些,无论)com.htc.socialnetwork.facebook(而不是com.facebook.katana),并导致这种冲突?我真的不认为卸载默认应用程序并从Google Play安装Facebook是一个可接受的解决方案(另外,我认为默认应用程序不能被卸载)。
更新3:
尚未解决。 19小时授予100声望赏金!
UPDATE 4:
的logcat的另一个有趣的路线:
07-15 10:55:51.718: E/chromium(30475): external/chromium/net/disk_cache/stat_hub.cc:216: [0715/105551:ERROR:stat_hub.cc(216)] StatHub::Init - App com.facebook.katana isn't supported.
[强调,模式]有时候你刚才假设Facebook的SDK(至少是最新的)是真的该死的车,会崩溃很多。你使用哪个SDK? – StErMi
是的!我发现Facebook在移动方面并不擅长,一般来说(他们自己的应用也吸引了很多)......我使用的是最新的sdk,它似乎是v3.0.1。如果这是sdk的bug,它已经在那里三个月了! –
当FB本地应用程序安装在手机上时,SDK的工作方式不同。您是否考虑过这种情况? – Umair