我想通过Facebook登录我的应用程序,但是我收到了Logcat的下一条消息:
Failed to find provider info for com.facebook.katana.provider.PlatformProvider
并且启动器未加载。我得到了我的哈希键like this。
我的代码是:
case R.id.btn_start_facebook:
// callback when session changes state
// start Facebook Login
Session.openActiveSession(this, true, new Session.StatusCallback() {
// callback when session changes state
@Override
public void call(Session session, SessionState state,
Exception exception) {
if (session.isOpened()) {
// make request to the /me API
Request.executeMeRequestAsync(session,
new Request.GraphUserCallback() {
// callback after Graph API response
// with user object
@Override
public void onCompleted(GraphUser user,
Response response) {
if (user != null) {
Log.d("myDebug",
"Hello " + user.getName()
+ " user id = "
+ user.getId()
+ "!");
} else {
Log.d("myDebug", "User is null");
}
}
});
}
}
});
答案 0 :(得分:10)
在您的应用程序清单中添加互联网许可
<uses-permission android:name="android.permission.INTERNET"/>
答案 1 :(得分:4)
我的问题是Android上安装的Facebook应用程序已经过时,与我的Facebook Android SDK不一致。
请查看此页面:Developer Facebook并确保Facebook SDK与Android上安装的Facebook应用程序一致。
答案 2 :(得分:0)
也许你可以尝试像这样做更多的错误检查
if (user != null) {
Log.d("myDebug",
"Hello " + user.getName()
+ " user id = "
+ user.getId()
+ "!");
} else {
Log.d("myDebug", "User is null");
FacebookRequestError error = response.getError();
if (error != null) {
Log.d(String.format("Error: %s", error.getErrorMessage()));
}
}
答案 3 :(得分:0)
如果有人有同样的错误并且上面的答案不起作用,请检查您的Facebook应用程序是否移动到SD卡。当您将智能手机连接到电脑时,它会自动禁用位于SD卡上的每个应用程序。
我找到的解决方案是再次将Facebook应用程序移至手机进行测试。 您也可以断开智能手机并运行应用程序,它运行正常,但您无法访问调试等。