3

我想使用 Facebook 登录我的应用程序,但我的 Logcat 收到了下一条消息:

Failed to find provider info for com.facebook.katana.provider.PlatformProvider

并且启动器不加载。我得到这样的哈希键。

我的代码是:

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");

                                    }

                                }
                            });
                }
            }
        });
4

4 回答 4

10

在您的应用程序清单中添加互联网权限

<uses-permission android:name="android.permission.INTERNET"/>
于 2013-11-18T11:39:25.867 回答
5

对我来说,问题是安装在 Android 上的那个 facebook 应用程序已经过时,并且与我的 Facebook Android SDK 不一致。

请查看此页面:Developer Facebook并确保 Facebook SDK 与安装在您的 Android 上的 Facebook 应用程序一致。

于 2013-11-26T06:19:23.970 回答
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())); 
      }
}
于 2013-10-22T17:20:20.117 回答
0

如果有人有同样的错误并且上面的答案不起作用,请检查您是否将 Facebook 应用程序移动到 SD 卡。当您将智能手机连接到电脑时,它会自动禁用 SD 卡上的所有应用程序。

我找到的解决方案是将 Facebook 应用程序再次移动到手机上进行测试。您也可以断开智能手机并运行应用程序,它工作正常,但您将无法访问调试等。

于 2014-06-06T03:28:56.960 回答