2016-07-12 1 views
3

빠른 React Native Android 앱을 사용하려고합니다. Facebook에 로그인해야하므로이 가이드를 따라 가야합니다."FBSDKPackage"가 Android에서 Reative Native Facebook SDK로 정의되지 않았습니다.

https://developers.facebook.com/docs/react-native/getting-started-android/

불행하게도,이 ReactActivity.javagetPackages 방법을 노출시키지 않는 한, 오래된 것으로 보인다. 또한 FBSDKPackage도 없습니다. React Native 버전 0.29를 사용하고 있습니다.

package com.myapplication;

import android.content.Intent;

import com.facebook.CallbackManager; import com.facebook.react.ReactActivity; import com.facebook.react.ReactPackage; import com.facebook.react.shell.MainReactPackage;

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

public class MainActivity extends ReactActivity { CallbackManager mCallbackManager;

/** 
* Returns the name of the main component registered from JavaScript. 
* This is used to schedule rendering of the component. 
*/ 
@Override 
protected String getMainComponentName() { 
    return "MyApplication"; 
} 

@Override 
protected List<ReactPackage> getPackages() { 
    mCallbackManager = new CallbackManager.Factory().create(); 
    ReactPackage packages[] = new ReactPackage[]{ 
      new MainReactPackage(), 
      new FBSDKPackage(mCallbackManager), // <-- Cannot resolve symbol 'FBSDKPackage' 
    }; 
    return Arrays.<ReactPackage>asList(packages); 
} 

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

}

사람이 어떤 경험이 있습니까?

감사합니다.
크리스

+0

당신은 그것을 해결할 수 있습니까 ?? 답장을 보내주십시오. –

+0

그렇지 않았습니다. 다른 프로젝트로 옮겼습니다. –

답변

0

나는 당신과 같은 문제에 직면했다. 나는없이 프로젝트 을 컴파일하는데 성공했으며 그 해결책을 찾지 못했습니다. rnpm가 먼저 build.gradle에서 (모듈 : 응용 프로그램) 종속성을 업데이트해야합니다 (그렇지 않은 내 경우) 작동하지 않은 경우 다른 부분에 대한

, 파일을 추가합니다

compile "com.facebook.android:facebook-android-sdk:[4,5)" 

동기화 프로세스가 끝나면 MainApplication.java (MainActivity가 아닌)을 업데이트하여 이러한 메소드를 갖도록하십시오. MainApplication.java

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() 
    ); 
    } 
    }; 

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

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     // Initialize the SDK before executing any other operations, 
     FacebookSdk.sdkInitialize(getApplicationContext()); 
     AppEventsLogger.activateApp(this); 
    } 
} 

하고 MainActivity.java에서

, 당신은 MainApplication의 콜백 관리자의으로 onActivity 결과를 사용하도록 onActivityResult를 업데이트해야합니다.

MainActivity.java

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    MainApplication.getCallbackManager().onActivityResult(requestCode, resultCode, data); 
} 
+0

fbsdk 패키지 가져 오기도 제거 했습니까? –

1

어떤 이유로 react-native-fbsdk (반응 0.47.1) 모듈 compile project(':react-native-fbsdk')을 만들지 않으므로이 프로젝트 https://github.com/facebook/react-native-fbsdk을 복제해야하고 Android Studio에서 직접 가져와야합니다. 그리고 당연히 추가하십시오 import com.facebook.reactnative.androidsdk.FBSDKPackage;

+0

이 대답은 정확하고 위의 자식 모듈을 프로젝트에 추가 한 다음 FBSDKPackage를 얻기 위해 컴파일했습니다. 고마워. –

관련 문제