Я пытаюсь запустить AwesomeProject на моем Nexus5 (Android 5.1.1).
Я могу собрать проект и установить его на устройстве. Но когда я запускаю его, у меня появляется красный экран с надписью
Невозможно загрузить пакет JS. Вы забыли запустить сервер разработки или подключить свое устройство?
В реакции на родную iOS я могу загрузить jsbundle в автономном режиме. Как я могу сделать то же самое для Android? (Или, по крайней мере, где я могу настроить адрес сервера?)
Обновить
Для запуска на локальном сервере выполните следующие команды в корневом каталоге вашего реагирующего проекта
react-native start > /dev/null 2>&1 &
adb reverse tcp:8081 tcp:8081
пожалуйста, посмотрите ответ dsissitka для более подробной информации.
Чтобы запустить без сервера, поместите jsfile в apk, выполнив:
- создать папку ресурсов в
android/app/src/main
curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle"
пожалуйста, посмотрите на ответ kzzzf для более подробной информации.
android
react-native
Мэтью
источник
источник
adb reverse
не поддерживается?adb reverse tcp:8081 tcp:8081
вам нужна версия ADB 1.0.32,reverse
опция не в 1.0.31Ответы:
Чтобы упаковать JS-файл в ваш apk, когда ваш сервер работает (
react-native start
), загрузите bundle в каталог assets вашего приложения:В следующем выпуске (0.12) мы исправим
react-native bundle
команду для работы с проектами Android, как и ожидалось.источник
Следующее заставило меня работать на Ubuntu 14.04:
Обновление : см.
Обновление 2 : @scgough Мы получили эту ошибку, потому что React Native (RN) не смог получить JavaScript с сервера dev, работающего на наших рабочих станциях. Вы можете увидеть, почему это происходит здесь:
https://github.com/facebook/react-native/blob/42eb5464fd8a65ed84b799de5d4dc225349449be/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java#L116-L137
Если ваше приложение RN обнаруживает, что вы используете Genymotion или эмулятор, оно пытается извлечь JavaScript из GENYMOTION_LOCALHOST (10.0.3.2) или EMULATOR_LOCALHOST (10.0.2.2). В противном случае предполагается, что вы используете устройство, и пытается извлечь JavaScript из DEVICE_LOCALHOST (localhost). Проблема в том, что сервер dev работает на локальном хосте вашей рабочей станции, а не на устройстве, поэтому для того, чтобы заставить его работать, вам нужно либо:
источник
Хорошо, я думаю, я понял, в чем проблема здесь. Это было связано с версией, которую
watchman
я запускал.В новой оболочке запустите
brew update
then:brew unlink watchman
then:brew install watchman
Теперь вы можете запустить
react-native start
из папки вашего проектаЯ оставляю эту оболочку открытой, создаю новое окно оболочки и запускаю:
react-native run-android
из папки моего проекта. С миром все в порядке.пс. У меня изначально была версия 3.2 сторожа. Это повысило меня до 3,7.
имп. Я новичок в этом, так что, возможно, это не самый быстрый путь к решению, но оно сработало для меня.
* БОЛЬШЕ ИНФОРМАЦИИ ДЛЯ РАБОТЫ / ОТЛАДКИ НА УСТРОЙСТВЕ *
Вы можете обнаружить, что если вы развернете свое приложение на своем Android-устройстве, а не на эмуляторе, вы увидите красный экран смерти с сообщением об ошибке
Unable to load JS Bundle
. Вам нужно настроить сервер отладки так, чтобы на вашем устройстве реагировал ваш компьютер ... либо его имя, либо IP-адрес.Menu
кнопку устройстваDev Settings
Debug server host for device
илиChange Bundle Location
192.168.1.10:8081
Дополнительная информация: http://facebook.github.io/react-native/docs/running-on-device-android.html
источник
brew uninstall watchman
прежде чем он установит последнюю версию для меня.Из каталога вашего проекта запустите
Это выводит следующее:
источник
react-native run-android
из папки проекта. Он работает нормально в терминале, но как только приложение открывается на моем устройстве, я вижу красный экранUnable to download JS bundle
Простое решение, которое работает для меня с Ubuntu 14.04.
Эмулятор (уже запущенный) вернется: Невозможно загрузить JS Bundle; Запустите снова JS-сервер:
Нажмите Перезагрузить JS на эмуляторе. Это сработало для меня. Надеюсь, это поможет
источник
В приложении на андроиде я открыл Меню (Command + M в Genymotion) -> Настройки Dev -> Отладка хоста и порта сервера для устройства
установите значение: localhost: 8081
Это сработало для меня.
источник
После опробования комбинации ответов здесь, это то, что работает для меня.
Я использую Genymotion в качестве моего эмулятора.
1 Запустите эмулятор Genymotion.
2 из терминала
3 Перезагрузить из эмулятора.
Он загружается!
Теперь я могу начать развиваться.
источник
Удалить приложение с вашего телефона! Я попробовал несколько шагов, но в конце концов сделал это.
$ react-native run-android
Dev Settings
и затем кDebug server host & port for device
. Там введите IP вашего сервера (IP вашего компьютера) и хост8081
, например192.168.50.35:8081
. На Mac вы можете найти IP вашего компьютера по адресуSystem Preferences -> Network -> Advanced... -> TCP/IP -> IPv4 Address
.Reload JS
.источник
По всей видимости, обратная версия adb была введена в Android 5.0
Получение дважды "ошибка: закрыто" на обратной стороне adb
Я думаю, что мы должны идти вперед с ответом kzzzf
источник
У меня недостаточно репутации, чтобы комментировать, но это относится к ответу dsissitka. Работает и на Windows 10.
Чтобы повторить, команды:
источник
Вот простые шаги для запуска вашего приложения на Android (релиз):
1. Зайдите в корень своего приложения.
2. Запустите эту команду.
Все ваши файлы скопированы.
3. Создайте подписанный APK.
Открытая андроид студия.
Построить> Создать подписанный APK> [Заполните необходимые данные, нажатие клавиши должно быть сгенерировано перед этим шагом]
Ваш APK должен быть создан без каких-либо ошибок. Установите на свое устройство, и это должно работать без проблем.
Вы также можете подключить свое устройство и напрямую нажать значок «Выполнить» на Android Studio для тестирования.
Генерация нажатия клавиш:
Перейти к C: \ Program Files \ Java \ jdkx.x.x_x \ bin
Бегать
Он, вероятно, попросит вас заполнить некоторые детали. Сделайте это, и у вас есть файл нажатия клавиш ( my_private_key.keystore ), который можно использовать для подписи вашего apk.
источник
react-native bundle
я получил ошибку: дубликаты ресурсовЯ получил это на Linux после остановки
react-native run-android
процесса. Кажется, что сервер узла все еще работает, поэтому при следующем запуске он не будет работать должным образом, и ваше приложение не сможет подключиться.Исправление здесь состоит в том, чтобы убить процесс узла, который выполняется в Xterm, который вы можете убить, используя
ctrl-c
это окно (проще), или вы можете найти его, используяlsof -n -i4TCP:8081
затемkill -9 PID
.Тогда беги
react-native run-android
снова.источник
Проверьте ваше соединение Wi-Fi.
Другой возможностью может быть то, что вы либо не подключены к Wi-Fi, либо подключены к другой сети, либо неверный IP-адрес в настройках вашего устройства. По какой-то причине мой андроид отключился от вайфай и я начал получать эту ошибку, по незнанию.
источник
Работает на устройстве
Я нашел другой ответ.
источник
Обновление
Теперь по windows не нужно запускать реакцию-родной старт. Упаковщик запустится автоматически.
источник
Одна важная вещь, чтобы проверить, что никто еще не упомянул: проверьте ваш локальный брандмауэр, убедитесь, что он выключен .
Смотрите мой ответ здесь: https://stackoverflow.com/a/41400708/1459275
источник
Я использую только Ubuntu и Android, и я не смог запустить его. Я нашел действительно простое решение - обновить файл package.json, изменив следующие строки:
в
И тогда вы запускаете сервер, набрав
Это гарантирует, что устройство Android ищет сервер узлов на вашем компьютере, а не локально на телефоне.
источник
Первоначальный вопрос был о перегрузке приложения в phyisical устройства.
Когда вы отлаживаете приложение на физическом устройстве (например, через adb), вы можете перезагрузить пакет JS, нажав на левую верхнюю кнопку «action» вашего устройства. Это откроет меню параметров (Перезагрузить, Отладить JS удаленно ...).
Надеюсь это поможет.
источник
Эта ошибка может быть легко устранена с помощью следующих шагов:
источник
adb reverse tcp:8081 tcp:8081
в корневой папке моего приложения?Вы можете следовать инструкции, указанной на официальной странице, чтобы решить эту проблему. Эта проблема возникает на реальном устройстве, поскольку комплект JS находится в вашей системе разработки, а приложение на вашем реальном устройстве не знает о его местонахождении.
источник
В новом React Native (точно 0.59) отладочный конфиг находится внутри
android/app/src/debug/res/xml/react_native_config.xml
источник
Запустите два терминала на одном и том же терминале, и первый терминал запустит реактивный запуск и второй терминал отклик-собственный запустит android. Эта проблема решается просто. И удачи
источник
Привет, я столкнулся с этой проблемой в своем проекте «голая», симулятор IOS работает нормально, но Android продолжал выдавать мне эту ошибку. Вот возможное решение, которое сработало для меня.
шаг 1, проверьте, авторизовано ли устройство adb, запустив в своем терминале adb devices
если он не авторизован, выполните следующие команды
шаг 2, sudo adb kill-server шаг 3, sudo adb start-сервер
затем проверьте, показывает ли команда adb devices список подключенных устройств. emulator-5554 device
вместо несанкционированного, если это устройство вместо несанкционированного
шаг 4, запустите npx реагировать-родной запустить андроид
в моем случае это сработало. Надеюсь, это решит вашу проблему.
источник
Я нахожу это странным, но у меня есть решение. Я заметил, что время от времени папка моего проекта становилась доступной только для чтения, и я не мог сохранить ее из VS. Поэтому я прочитал предложение перенести NPM из локального пользовательского PATH в общесистемную глобальную переменную PATH, и это сработало как прелесть.
источник
Запуск npm start из каталогаact-native работал для меня.
источник