繁体   English   中英

Facebook SDK Android登录按钮错误

[英]Facebook SDK Android Login Button error

我是Android应用程序开发的新手,正在尝试使用Facebook登录按钮创建简单的活动。 但是,在手机上部署应用程序时,出现以下错误:

11-09 04:48:44.260 24890-25085/com.example.fblogin E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #5
11-09 04:48:44.260 24890-25085/com.example.fblogin E/AndroidRuntime: Process: com.example.fblogin, PID: 24890
11-09 04:48:44.260 24890-25085/com.example.fblogin E/AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Object.hashCode()' on a null object reference
11-09 04:48:44.260 24890-25085/com.example.fblogin E/AndroidRuntime:     at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:746)
11-09 04:48:44.260 24890-25085/com.example.fblogin E/AndroidRuntime:     at java.util.concurrent.ConcurrentHashMap.containsKey(ConcurrentHashMap.java:774)
11-09 04:48:44.260 24890-25085/com.example.fblogin E/AndroidRuntime:     at com.facebook.internal.Utility.queryAppSettings(Utility.java:822)
11-09 04:48:44.260 24890-25085/com.example.fblogin E/AndroidRuntime:     at com.facebook.login.widget.LoginButton$1.run(LoginButton.java:489)
11-09 04:48:44.260 24890-25085/com.example.fblogin E/AndroidRuntime:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
11-09 04:48:44.260 24890-25085/com.example.fblogin E/AndroidRuntime:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
11-09 04:48:44.260 24890-25085/com.example.fblogin E/AndroidRuntime:     at java.lang.Thread.run(Thread.java:818)

我编写了以下.xml和.java代码:

JAVA:

public class LoginActivity extends AppCompatActivity {

private LoginButton loginButton;
private CallbackManager callbackManager;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    FacebookSdk.sdkInitialize(getApplicationContext());
    callbackManager = CallbackManager.Factory.create();
    setContentView(R.layout.activity_login);
    loginButton = (LoginButton)findViewById(R.id.fb_login_button);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {

        }

        @Override
        public void onCancel() {

        }

        @Override
        public void onError(FacebookException e) {

        }
    });
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    callbackManager.onActivityResult(requestCode, resultCode, data);
}

}

XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:facebook="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="vertical"
android:padding="20dp" >

<com.facebook.login.widget.LoginButton
    android:id="@+id/fb_login_button"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="5dp"
     />

我还在AndroidManifest.xml中添加了标签。 非常感谢您提供有关如何使FB登录功能正常工作的任何帮助。 Facebook文档的感觉很难解释。

  1. 尝试向您的登录按钮添加权限(在注册回调之前),例如:

    loginButton.setReadPermissions(“ public_profile”);

  2. 在您的onActivityResult内部尝试添加

    super.onActivityResult(requestCode,resultCode,data);

在callbackManager.onActivityResult方法之前

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM