React Native fb-sdk не может найти символ CallbackManager
Реактивная версия 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 ответ
Если кто-то сталкивается с той же проблемой, это связано с тем, что 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, поскольку она намного лучше с точки зрения читабельности и подробностей.