Подтвердить что ты не робот

ReferenceError: Не удается найти переменную: __fbBatchedBridge

Используя только код по умолчанию из react-native init AwesomeProject, при запуске приложения я получаю "ReferenceError: не могу найти переменную: __fbBatchedBridge (строка 1 в сгенерированном комплекте)".

И, когда я 'Reload JS', приложение просто имеет белый фон, а не любые "привет мир". Я не коснулся какого-либо кода из init.

Любые идеи по устранению ошибки?

Снимок экрана (нажмите, чтобы посмотреть в полный размер):
enter image description here

Использование:

  • Ubuntu 15.10, 64-бит
  • Node.js v5.3.0
  • реактивный-родной v0.1.7
  • Nexus 5X, API 6.0.1
4b9b3361

Ответ 1

Обычно я вижу это, когда пакет не запускается. Убедитесь, что он запущен, запуская начальный запуск

Ответ 2

У меня была такая же проблема при использовании Visual Studio Android Emulator. Когда красный экран отображает тип в командной строке

adb shell input keyevent 82

Это вызовет событие shake и запустит меню dev

Меню разработчика

Затем нажмите "Настройки" > "Отладка" сервера и порт для устройства и введите <your ip adress>:8081. Если по какой-то причине вы не можете ввести поле, вы можете вызвать текстовое действие в командной строке, используя

adb shell input text <your ip adress>:8081

Ответ 3

я решил это с помощью этой команды

adb reverse tcp:8081 tcp:8081

Ответ 4

Спасибо rmevans9 и Anonsage за ваши ответы!

Я использую HTC One в Ubuntu, и нет опции меню, так или иначе это резюме ответов, которые сработали для меня:

  • Создайте проект $ react-native init MyProject $ cd MyProject/

  • В первой вкладке консоли запустите и оставьте ее запущенной при разработке (react-native start): $ npm start

  • Во второй вкладке консоли компилируйте и установите проект (подключите устройство к USB, если хотите): $ react-native run-android

  • Исправить ReferenceError: Can't find variable: __fbBatchedBridge:

    • Найдите локальный IP-адрес, выполнив ifconfig на Linux/Mac, например: inet addr:192.168.0.3
    • Встряхните устройство, чтобы увидеть параметры меню во время работы приложения (если у вас нет кнопки "Меню" )
    • Перейдите в раздел Dev SettingsDebug server host & port for device в Debugging и скопируйте локальный IP-адрес с определенным портом: 192.168.0.3:8081 (порт можно просмотреть при запуске npm start с первой вкладки) затем нажмите /Back
    • Встряхните устройство, чтобы снова увидеть параметры меню и нажмите Enable Live Reload (чтобы видеть изменения в реальном времени при редактировании)
    • Встряхните устройство, чтобы снова увидеть параметры меню и нажмите Reload JS

Ответ 5

Это работало для меня в соответствии с документацией

http://facebook.github.io/react-native/docs/running-on-device-android.html#content

Использование adb reverse Обратите внимание, что этот параметр доступен на устройствах под управлением Android 5.0 и API (API 21).

Подключено ли ваше устройство через USB с включенной отладкой (см. параграф выше о том, как включить отладку USB на вашем устройстве).

  • Запустить adb reverse tcp: 8081 tcp: 8081

Вы можете использовать Reload JS и другие варианты разработки без дополнительной настройки

  1. Затем запустите response-native run-android, который автоматически запустит dev-сервер на порту 8081 на вашем компьютере-разработчике, если он еще не запущен.

Ответ 6

Я столкнулся с этим, когда в моем packages.json и моем build.gradle файле я указал разные собственные версии. Убедившись, что они совпали, запустили обновление npm и перестроены из студии Android, я исправил эту проблему.

Ответ 7

У меня была та же проблема.

Поскольку я следил за всеми шагами, упомянутыми в других ответах, я не мог решить проблему.

В моем случае firewall блокировал пакеты, исходящие от android.

Ответ 8

Также, если вы отправили свое приложение для магазина iTunes, убедитесь, что ваш jsCodeLocation вернулся к локальному хосту, как показано ниже:

  jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"];

  /**
   * OPTION 2
   * Load from pre-bundled file on disk. The static bundle is automatically
   * generated by "Bundle React Native code and images" build step.
   */

   //jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];