React Native fb-sdk не может найти символ CallbackManager - PullRequest
0 голосов
/ 24 февраля 2019

React Native и fbsdk версии:

"react": "16.6.3",
"react-native": "0.58.5",
"react-native-fbsdk": "^0.8.0"

Я получил следующую ошибку:

> Task :app:compileDebugJavaWithJavac FAILED
C:\Users\xxxx\Desktop\project\android\app\src\main\java\com\project\MainApplication.java:22: error: cannot find symbol
  private static CallBackManager mCallbackManager = CallbackManager.Factory.create();
                 ^
  symbol:   class CallBackManager
  location: class MainApplication
C:\Users\xxxx\Desktop\project\android\app\src\main\java\com\project\MainApplication.java:24: error: cannot find symbol
  protected static CallBackManager getCallbackManager() {
                   ^
  symbol:   class CallBackManager
  location: class MainApplication
2 errors

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

Кажется, проблема связана с этой частью кода, но я не могу 'Я не могу понять, что не так.Я точно следовал инструкциям, приведенным в их официальном репозитории .

public class MainApplication extends Application implements ReactApplication {

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

  protected static CallBackManager getCallbackManager() {
    return mCallbackManager;
  }

  // ...

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

  // ...

}

. Я также вручную добавил следующие импорта в MainActivity.java:

import com.facebook.CallbackManager;
import com.facebook.FacebookSdk;
import com.facebook.reactnative.androidsdk.FBSDKPackage;

Добавил эти строкидо app/build.gradle:

implementation project(':react-native-fbsdk')
implementation 'com.facebook.android:facebook-android-sdk:4.34.0'

и до settings.gradle:

include ':react-native-fbsdk'
project(':react-native-fbsdk').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-fbsdk/android')

1 Ответ

0 голосов
/ 26 февраля 2019

Если кто-то сталкивается с той же самой проблемой, это связано с тем, что npm неправильно связывает fb-sdk с проектом.Я пытался использовать npm install и npm link, но безуспешно, несмотря на то, что npm не выдает никаких ошибок.Однако установка sdk с помощью react-native устранила проблему:

react-native install react-native-fbsdk
react-native link react-native-fbsdk

Если вы столкнулись с ошибкой MODULE_NOT_FOUND при попытке связать, откройте командную строку в корневой папке проекта изапустите:

cd android
gradlew clean

Кроме того, хотя их официальный репозиторий GitHub содержит инструкции, касающиеся процесса установки, я рекомендую вместо этого перейти на страницу для разработчиков Facebook , так как она есть.намного лучше с точки зрения читабельности и деталей.

...