按下"用Facebook登录后,我的应用程序崩溃了#34; React-native fbsdk

时间:2016-11-28 11:43:42

标签: facebook login react-native

我试图将我的应用程序与facebook集成在一起:

const FBSDK = require('react-native-fbsdk');
const {
    GraphRequest,
    GraphRequestManager,
    AccessToken,
    LoginButton,
    LoginManager
} = FBSDK;

...

        <LoginButton
            style={styles.facebookRegButton}
            readPermissions={['public_profile']}
            onLogoutFinished={() => alert("User logged out")} />

现在,当我按下facebook登录按钮时,我的应用程序崩溃并出现错误: &#34; appname已停止&#34;。

我使用android

这是我的mainActivity.java文件:

package com.students;

import com.facebook.react.ReactActivity;
import com.oblador.vectoricons.VectorIconsPackage;
import com.github.yamill.orientation.OrientationPackage;
import com.BV.LinearGradient.LinearGradientPackage;
import android.content.Intent;
import android.os.Bundle;
import com.facebook.FacebookSdk;
import com.facebook.CallbackManager;
import com.facebook.react.ReactPackage;

public class MainActivity extends ReactActivity {
    CallbackManager mCallbackManager = MainApplication.getCallbackManager();
    /**
     * Returns the name of the main component registered from JavaScript.
     * This is used to schedule rendering of the component.
     */
    @Override
    protected String getMainComponentName() {
        return "students";
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
      super.onActivityResult(requestCode, resultCode, data);
      mCallbackManager.onActivityResult(requestCode, resultCode, data);
    }
}

和MainApplication.java文件:

package com.students;

import android.app.Application;
import android.util.Log;

import com.facebook.react.ReactApplication;
import com.facebook.reactnative.androidsdk.FBSDKPackage;
import com.imagepicker.ImagePickerPackage;
import com.facebook.react.ReactInstanceManager;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
import com.facebook.CallbackManager;
import com.facebook.FacebookSdk;
import com.facebook.reactnative.androidsdk.FBSDKPackage;
import com.facebook.appevents.AppEventsLogger;

import java.util.Arrays;
import java.util.List;

public class MainApplication extends Application implements ReactApplication {

  private static CallbackManager mCallbackManager =
    CallbackManager.Factory.create();

  protected static CallbackManager getCallbackManager() {
    return mCallbackManager;
  }

  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
    @Override
    protected boolean getUseDeveloperSupport() {
      return BuildConfig.DEBUG;
    }

    @Override
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
          new MainReactPackage(),
          new FBSDKPackage(mCallbackManager),
          new ImagePickerPackage()
      );
    }
  };

  @Override
  public void onCreate() {
    super.onCreate();
    FacebookSdk.sdkInitialize(getApplicationContext());
    AppEventsLogger.activateApp(this);
  }

  @Override
  public ReactNativeHost getReactNativeHost() {
      return mReactNativeHost;
  }
}

我的反应原生版本是:0.36.1

tnx很多

1 个答案:

答案 0 :(得分:0)

您不必仅MainActivity.java编辑MainApplication.java

要解决它:

  1. MainActivity.java默认

  2. 您必须配置strings.xml。该文件位于android\app\src\main\res\values\strings.xml。在<resources>标记内写下此行。

    <string name="facebook_app_id">IDFACEBOOKAPP</string>

    将你的facebook app id放入其中。