且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

LoginButton facebook android NullPoiunterExecptioi

更新时间:2023-11-20 12:04:52

您的元标记应在Manifest中的应用程序标签内:

your meta tag should be inside application tag in Manifest:

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

  <meta-data
    android:name="com.facebook.sdk.ApplicationId"
    android:value="@string/facebook_app_id"/>

</application>

另外,如果你使用自定义登录按钮;

Also if u use custom login button;

将其添加到您的布局中:

add this to your layout:

 <com.facebook.login.widget.LoginButton
        android:id="@+id/login_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="gone" />

在您的活动中

 loginButton=(LoginButton)findViewById(R.id.login_button);
loginButton.setReadPermissions("email");

loginButton.registerCallback(manager, new FacebookCallback<LoginResult>() {
    @Override
    public void onSuccess(LoginResult loginResult) {
        Log.i("Facebook","Login success");
    }

    @Override
    public void onCancel() {
        Log.i("Facebook","Login cencelled");
    }

    @Override
    public void onError(FacebookException error) {
        Log.i("Facebook","Login error "+error.getMessage());

    }
});

现在只需调用Facebook 登录按钮当用户点击你自定义的按钮

now just invoke facebook login button when user clicked on your custom button

public void onClick(View v) {
    if (v == facebook_logi) {
        loginButton.performClick();
    }
 }