Ответ 1
Обычно я вижу это, когда пакет не запускается. Убедитесь, что он запущен, запуская начальный запуск
Используя только код по умолчанию из react-native init AwesomeProject
, при запуске приложения я получаю "ReferenceError: не могу найти переменную: __fbBatchedBridge (строка 1 в сгенерированном комплекте)".
И, когда я 'Reload JS', приложение просто имеет белый фон, а не любые "привет мир". Я не коснулся какого-либо кода из init.
Любые идеи по устранению ошибки?
Снимок экрана (нажмите, чтобы посмотреть в полный размер):
Использование:
Обычно я вижу это, когда пакет не запускается. Убедитесь, что он запущен, запуская начальный запуск
У меня была такая же проблема при использовании Visual Studio Android Emulator. Когда красный экран отображает тип в командной строке
adb shell input keyevent 82
Это вызовет событие shake и запустит меню dev
Затем нажмите "Настройки" > "Отладка" сервера и порт для устройства и введите <your ip adress>:8081
. Если по какой-то причине вы не можете ввести поле, вы можете вызвать текстовое действие в командной строке, используя
adb shell input text <your ip adress>:8081
я решил это с помощью этой команды
adb reverse tcp:8081 tcp:8081
Спасибо 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
:
ifconfig
на Linux/Mac, например:
inet addr:192.168.0.3
Dev Settings
→ Debug server host & port for device
в Debugging
и скопируйте локальный IP-адрес с определенным портом:
192.168.0.3:8081
(порт можно просмотреть при запуске npm start
с первой вкладки)
затем нажмите /Back
Enable Live Reload
(чтобы видеть изменения в реальном времени при редактировании)Reload JS
Это работало для меня в соответствии с документацией
http://facebook.github.io/react-native/docs/running-on-device-android.html#content
Использование adb reverse Обратите внимание, что этот параметр доступен на устройствах под управлением Android 5.0 и API (API 21).
Подключено ли ваше устройство через USB с включенной отладкой (см. параграф выше о том, как включить отладку USB на вашем устройстве).
Вы можете использовать Reload JS и другие варианты разработки без дополнительной настройки
Я столкнулся с этим, когда в моем packages.json
и моем build.gradle
файле я указал разные собственные версии. Убедившись, что они совпали, запустили обновление npm и перестроены из студии Android, я исправил эту проблему.
У меня была та же проблема.
Поскольку я следил за всеми шагами, упомянутыми в других ответах, я не мог решить проблему.
В моем случае firewall
блокировал пакеты, исходящие от android.
Также, если вы отправили свое приложение для магазина 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"];