React-native ссылка вызывает повторное связывание (Android)

Недавно я столкнулся с проблемой, которой раньше не было ... Запуск react-native link приводит к добавлению кода в уже добавленные файлы Android (пытается связать зависимости, которые уже были связаны. Есть идеи, почему это происходит?

"dependencies": {
      "lodash": "^4.17.4",
      "react": "16.2.0",
      "react-native": "0.52.3",
      "react-native-blur": "^3.2.2",
      "react-native-fabric": "^0.5.1",
      "react-native-fbsdk": "^0.7.0",
      "react-native-firebase": "^3.3.1",
      "react-native-iap": "^0.2.17",
      "react-native-loading-spinner-overlay": "^0.5.2",
      "react-native-mail": "^3.0.5",
      "react-native-onesignal": "^3.0.9",
      "react-native-sound": "^0.10.9",
      "react-native-splash-screen": "^3.0.6",
      "react-navigation": "^1.0.0-beta.23",
      "react-redux": "^5.0.6",
      "redux": "^3.7.2",
      "redux-action-listeners": "^1.0.2",
      "redux-thunk": "^2.2.0"
  },
1
0
212
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Эта ошибка возникла из-за неправильного кода в файле link.js ранее, в этой строке.

const isInstalled = linkConfig.isInstalled(project[platform], dependency.config[platform]);

Это исправлено этим совершить, и последняя версия link.js также имеет фиксированный код, замененный этой строкой

const isInstalled = linkConfig.isInstalled(project[platform], dependency.name, dependency.config[platform]);

Вот ссылка на проблема

Спасибо, Притиш! Вы знаете, какая версия react-native решает проблему?

Ilya Karnaukhov 31.03.2018 20:20

Согласно их git branches, последние версии master branch или 0.54-stable и 0.55-stable должны это исправить.

Pritish Vaidya 31.03.2018 20:25

Идеально. Очень признателен.

Ilya Karnaukhov 31.03.2018 22:23

Как упоминалось в Притиш, возникла проблема с реактивным вызовом ссылок react-native link или повторным связыванием всей библиотеки Android, что означает, что он будет вызывать скрипт ссылки, связанный с вашими зависимостями. Решение состоит в том, чтобы связать только недавно добавленную библиотеку, позвонив в react-native link <LIBRARY_NAME>.

Например

Если в вашем проекте вы используете реагировать на родную камеру и реагировать-native-fs, вызов react-native link свяжет и react-native-camera, и react-native-fs.

Предположим, вы уже подключили react-native-camera, но не добавляли react-native-fs. После добавления react-native-fs в качестве зависимости, если вы хотите, чтобы он был связан (без повторного связывания react-native-camera), вызовите: react-native link react-native-fs

Надеюсь, поможет.

Если команда реакция на родную ссылку уже была запущена раньше, тогда все зависимости будут добавлены дважды.

Чтобы избежать этой всегда конкретной библиотеки ссылок, например:
React-native ссылка <Имя вашей библиотеки>

Чтобы удалить повторяющиеся зависимости, удалите повторяющиеся записи из следующих файлов:
1. build.gradle (Проверить зависимости)
2. setting.gradle
3. MainApplication.java (проверьте импорт и getPackages ())

Другие вопросы по теме