react-native run-android
Команда заканчивается, оставив сообщение в симуляторе Android. Сообщение выглядит следующим образом:
Невозможно загрузить скрипт. Убедитесь, что вы используете сервер Metro или что ваш пакет 'index.android.bundle' правильно упакован для выпуска.
Что я делаю не так?
reactjs
react-native
react-native-android
react-native-cli
metro-bundler
Belle Solutions
источник
источник
Ответы:
Вы еще не запустили пакет Запустите
npm start
илиreact-native start
в корневом каталоге вашего проекта раньшеreact-native run-android
.источник
Эти шаги действительно помогают мне:
Шаг 1: Создайте каталог в android / app / src / main / assets
Команда Linux :
mkdir android/app/src/main/assets
Шаг 2: Переименуйте
index.android.js
(в корневом каталоге) вindex.js
( Возможно, естьindex.js
файл, в этом случае вам не нужно его переименовывать ), затем выполните следующую команду:Шаг 3: Создайте свой APK:
react-native run-android
Пожалуйста, используйте index.js в последней версии.
Наслаждаться :)
источник
index.js
в корневом каталоге есть файл, и вам не нужно его переименовыватьДля меня эта ошибка была вызвана обновлением реагировать на родной
Если вы посмотрите обновление diff, вам нужно создать манифест отладки.
android/app/src/debug/AndroidManifest.xml
См. Для получения дополнительной информации: https://stackoverflow.com/a/50834600/1713216
https://react-native-community.github.io/upgrade-helper/
источник
android:usesCleartextTraffic="true"
в основном,AndroidManifest.xml
посмотреть, работает ли это?Вы можете попробовать следующее:
Добавьте эту строку в свой AndroidManifest.xml
источник
Подобная проблема произошла со мной.
Видимо Mcafee блокирует порт 8081. Мне понадобились часы, чтобы понять это.
Попробуйте запустить:
Когда приложение отображается с ошибкой на эмуляторе, зайдите в настройки dev ( Ctrl+ M).
Измените «Отладочный сервер и порт для устройства» на «localhost: 1234».
Закройте приложение и запустите его из ящика приложения.
источник
Сначала выполните шаги 4 и 5, затем вы можете запустить свой проект. Если вы не получили результат (с шагами 4 и 5), выполните следующие шаги
1- Попробуйте понизить версию своего узла (текущая версия
12.13.1
)2- Добавьте путь npm module (
C:\Users\your user name\AppData\Roaming\npm
) к системным переменным вместо пользовательских переменных.3- Установить реакцию глобально с помощью команды
4- Перейдите в корневой каталог вашего проекта и выполните следующую команду:
5- Откройте другой терминал в корне вашего проекта и выполните следующую команду:
РЕДАКТИРОВАТЬ :
Вы используете Genymotion? Если да, сделайте следующий шаг:
После вышеуказанного шага, если вы получаете следующую ошибку?
Откройте свой гений и перейдите по адресу:
genymotion menu -> Settings -> ADB -> Затем выберитеuse custom android sdk tools (нажмите, чтобы найти местоположение SDK)
Наконец, запустите свой проект снова ..
источник
просто добавьте три заставки: node_modules \ metro-config \ src \ defaults \ blacklist.js
замените эту часть:
источник
если у вас все настроено правильно, попробуйте это:
ADB обратный протокол: 8081 протокол: 8081
Зачем? «Когда RN-упаковщик работает, в вашем браузере доступен активный веб-сервер по адресу 127.0.0.1:8081. Именно с этого сервера JS-пакет для вашего приложения обслуживается и обновляется по мере внесения изменений. Без обратного прокси-сервера Ваш телефон не сможет подключиться к этому адресу. "
все кредиты Swingline0
источник
[Быстрый ответ]
После попытки решить эту проблему в моем рабочем пространстве я нашел решение.
Эта ошибка вызвана тем, что существует проблема с Metro, использующим некоторые комбинации версии NPM и Node.
У вас есть 2 варианта:
Альтернатива 2: перейдите к этому файлу:
\node_modules\metro-config\src\defaults\blacklist.js
и измените этот код:и изменить на это:
источник
Это сработало для меня после попытки нескольких способов.
В файле
node_modules\metro-config\src\defaults\blacklist.js
Заменить:
с участием :
надеюсь это поможет.
источник
metro-config
использовал \ для путей вместо /, который этот ответ предлагает изменить. Не делай этого . Изменение пакетов npm означает, что вся ваша команда должна делать это на своем компьютере, в CI, на стадии подготовки, на производстве и каждый раз, когда metro-config выпускает обновление. Лучший подход заключается в том, чтобы раскошелиться на metro-config на GitHub, зафиксировать исправление, отправить и отправить PR, чтобы исправить это для всех.Начиная с Android 9.0 (уровень API 28), поддержка открытого текста по умолчанию отключена.
Это то, что вам нужно сделать, чтобы избавиться от этой проблемы, если вы правильно выполняете команды запуска
И измените свой файл манифеста Android, как это.
источник
После нескольких часов в поисках ответа. Решением было сделать узел понижения до версии 12.4.
В моем случае я понимаю, что ошибка только что происходит в версии реакции 0,60 с версией узла 12,6.
источник
Мое решение этого, как показано ниже:
Запустить Metro сервер
Запустить Android
Если вы видите сообщение об ошибке «порт 8081 уже используется», вы можете завершить этот процесс и запустить его снова.
См. React Native Страница устранения неполадок .
источник
Если вы используете Linux, откройте терминал из корневого каталога приложения и запустите
затем откройте другое окно терминала и запустите:
источник
Я просто хочу добавить неочевидную возможность, не описанную здесь. Я использую @ response-native-community / netinfo для обнаружения сетевых изменений, в первую очередь состояния сети. Чтобы проверить состояние отключения сети, переключатель WIFI (на эмуляторе) необходимо отключить. Это также эффективно отсекает мост между эмулятором и средой отладки. Я не включил WIFI после тестов, так как был далеко от компьютера и сразу же забыл об этом, когда вернулся.
Существует вероятность того, что это может иметь место и для кого-то другого, и его стоит проверить, прежде чем предпринимать какие-либо другие радикальные шаги.
источник
У меня возникла та же проблема, проблема для меня заключалась в том, что adb был не в правильном пути к среде, ошибка говорит вам о том, что порт метро, а вы в adb, порты убиты и перезапущены.
Добавить переменную среды (ADB)
Запустите сборку Android снова
Или
источник
Я тоже сталкивался с этой проблемой. Я решил этот следующий шаг.
Проверьте Android SDK путь в среде Veritable.
Добавить
ANDROID_HOME = C:\Users\user_name\AppData\Local\Android\Sdk
в системную переменнуюи
C:\Users\user_name\AppData\Local\Android\Sdk\platform-tools
путь в системной переменнойзамените sharedBlacklist как сегмент кода ниже,
в node_modules / metro-config / src / default / blacklist.js
Затем запустите NPC реагировать родной запустить-Android - порт 9001
Удачного кодирования!
источник
Я испытал это только потому, что мой Wi-Fi был по ошибке выключен на моем эмуляторе. Я включил его, и он начал работать нормально. Надеюсь, это кому-нибудь пригодится
источник
Возможность этой ошибки также неверный путь, проверьте один раз
источник
Решение, которое сработало для меня, заключается в следующем:
источник
обновить эту часть в черном списке метро
источник
Я столкнулся с той же проблемой, когда следовал учебному пособию по React Native (разработка для Linux и ориентация на Android).
Эта проблема помогла мне решить проблему в следующих шагах. Выполните следующие команды в следующей последовательности:
mkdir android/app/src/main/assets
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
react-native run-android
Вы можете автоматизировать вышеуказанные шаги, помещая их в
scripts
части ,package.json
как это:Тогда вы можете просто выполнить
npm run android-linux
из командной строки каждый раз.источник
По умолчанию крошечный сервер JavaScript с именем «Metro Server» работает на порту 8081.
Вам нужно сделать этот порт доступным для запуска этого Сервера. Так,
Как освободить порт?
http://tenbull.blogspot.com/2019/05/how-to-kill-process-currently-using.html
Как убить процесс в настоящее время, используя порт на локальном хосте в Windows?
и что наиболее важно, я обновил версию своего узла с 8.x до 10.x (последняя версия), как предложено facebook @ https://facebook.github.io/react-native/docs/getting-started
источник
Для меня эта проблема началась с апгрейда реактив-родной. Обновление было необходимо, чтобы добавить 64-битную поддержку.
Кроме того, одно важное изменение, которое я сделал для обновления, было в ../android/build/build.gradle
Мне пришлось изменить targetSdkVersion с 27 на 28 после предупреждения, когда я пытался загрузить сборку (.apk) в консоль goole play. Мало ли я понял, что это было основной причиной вышеуказанной ошибки для меня. Сразу же ответы @tom и @tinmarfrutos имели абсолютный смысл.
Я решил проблему, добавив Android: usedCleartextTraffic = "true" в мой android / app / src / debug / AndroidManifest.xml
источник
В моем случае я установил прокси в моем эмуляторе. После того как я удалю этот прокси-сервер, он вернется в нормальное состояние.
источник
ВАЖНО! В вашей среде может быть много виртуальных устройств. Убедитесь, что если вы меняете AVD, повторите настройку снова.
ОТЛАДКА ИНФОРМАЦИЯ-
В случае, если вы испытываете вышеуказанную ошибку, вы должны сначала проверить, что работает на порту 8081
Самый быстрый способ найти это, используя следующую команду в терминале
если это что-то показывает, значит порт заблокирован. если возможно, разблокируйте этот порт.
В противном случае вам нужно будет изменить порт. Процесс, который сделал это, уже упоминался в комментарии выше, Навин Кумар
Убедитесь, что 9001 тоже не используется :)
источник
Попробуйте эти шаги, если вы попробовали все, что упомянуто в вышеупомянутых решениях:
источник
Попробуйте следующее.
Может быть, после предыдущих шагов у вас есть запуск npm start - --reset-cache
Я работаю, надеюсь, это поможет вам.
источник
Если вы работаете в ОС Linux, возможно, ваш удаленный сервер npm не работает. Откройте другой терминал (с каталогом проекта) и запустите эту команду sudo npm start или sudo реагировать-нативный запуск перед выполнением sudo реагировать-нативный запуск-android
источник
Сообщение об ошибке на эмуляторе вводит в заблуждение. В моем случае я использовал Macbook. Мне нужно было изменить разрешения на Android / Gradlew при запуске
$ chmod 755 ./gradlew
, а затем приложение можно было собрать и развернуть в эмуляторе Android.источник