react-native run-android команда завершается, оставляя сообщение в симуляторе Android. Сообщение выглядит следующим образом:
Unable to load script.Make sure you are either running a Metro server or that your bundle 'index.android.bundle' is packaged correctly for release.
Что я делаю неправильно?
У меня такая же проблема, потому что мое устройство не подключено к Интернету.
Приходит эта ошибка: throw er; // Необработанное событие "ошибка"
я нашел и записал stackoverflow.com/a/58570426/6852210
@Belle Solution, ты нашел какое-нибудь решение?
Черт возьми, @HuoChhunleng, я чуть не выбил свой ноутбук. Большое спасибо за подсказку!!
Может быть, это поможет вам. medium.com/@adityasingh_32512/…
У меня была эта ошибка с AVD. Я только что открыл Android Studio> AVD Manager> Wipe Data. Это сработало для меня.
Пожалуйста, убедитесь, что ваши мобильные данные или Wi-Fi включены (это было проблемой для меня). Если да, то попробуйте альтернативы, описанные здесь
Я попробовал все решения ниже, прокомментированные и отвеченные разными людьми. Иногда это работает, но иногда нет никакого решения для меня..... лучшее решение для этой ошибки удалить apk с физического устройства и запустить приложение еще раз... для меня это работает на 100%!!!





Вы еще не запустили сборщик. Запустите npm start или react-native start в корневом каталоге вашего проекта перед react-native run-android.
сначала я запускаю react-native start, но при запуске react-native run-android он завершается после успешной сборки
У вас должно быть одновременно запущено 2 консоли узла. Один запускает и запускает упаковщик, другой запускает эмулятор.
У меня эта ошибка появляется, даже если сборщик запущен.
Убедитесь, что порт 8081 не заблокирован. Кроме того, убедитесь, что вы используете один терминал для запуска сборщика, подождите, пока он завершит загрузку графа зависимостей, а затем запустите react-native run-android на другом терминале.
@Nerdragen Должен ли я дождаться загрузки графа зависимостей, на самом деле я получил ** загрузку графа зависимостей. ** как сообщение в cmd
@ Arbaz.in да, вам нужно сначала дождаться окончания загрузки графа зависимостей
Я получил сообщение об окончании загрузки, что нам означает это сообщение
Это означает, что упаковщик завершил загрузку графа зависимостей, и вы можете запустить эмулятор.
я запустил эмулятор, я пишу реакция-родной запуск-андроид эту команду. после этой команды сервер запускается с портом 8081
Команда запуска react-native приводит к загрузке графа зависимостей... сделано и не говорит о завершении или что-то в этом роде
Когда граф зависимостей завершит загрузку, это все, что он скажет. Держите эту консоль открытой и запустите отладчик
В Windows он запускается сам по себе, а в Linux нет, спасибо! Работайте идеально!
@Nerdragen Как я могу проверить, заблокирован ли порт 8081 или нет.
Я попытался запустить свой код из VS Code, и у меня была такая же ошибка. Пока я не использую npm start и react-native run-android , спасибо
Похожая проблема случилась со мной.
По-видимому, Mcafee блокирует порт 8081. Мне потребовались часы, чтобы понять это.
Попробуйте запустить:
react-native run-android --port=1234
Когда приложение отображается с ошибкой на эмуляторе, войдите в настройки разработчика (Ctrl+M).
Измените «Хост сервера отладки и порт для устройства» на «localhost: 1234».
Закройте приложение и запустите его из панели приложений.
спасибо за подсказку, мне пришлось открыть порт 8081 в моем брандмауэре, и он заработал
Большой плюс за это. Если у вас есть Mcafee, я бы попробовал это, у меня это сработало.
Спасибо, спас мой проект
Я застрял здесь на два дня, никогда бы не подумал, что это заблокированный порт! Большое спасибо!
Я попытался попасть в локальный хост: 8081 в браузере, но безуспешно. Небольшое исследование и выяснилось, что Macafee заблокировал этот порт. Пошел по твоему пути. Начал нормально работать.
Я бездельничал о части mcaffee, но это также сработало для меня. Действительно оценил. :)
Этот совет был тем, что мне нужно (Windows 10), в основном порт 8081 был заблокирован, и как только я убил все, что работало на этом порту, мое приложение волшебным образом заработало. Полезной командой была следующая, которая убила все процессы на порту 8081: for /f "tokens=5" %a in ('netstat -aon ^| find ":8081" ^| find "LISTENING"') do taskkill /f /pid %a
Это то, что именно происходит в моей системе, когда я начал с 1234, все работает нормально, исключение какое-то время вводило в заблуждение, сходил с ума, не знаю, как бы закончился мой день, если бы я не приземлился здесь, спасибо!
ВАЖНЫЙ - В вашей среде может быть много виртуальных устройств. Убедитесь, что если вы меняете AVD, вы повторяете настройку снова.
Если вы столкнулись с вышеуказанной ошибкой, вам нужно сначала проверить, что работает на порту 8081.
Самый быстрый способ найти это с помощью следующей команды в терминале
netstat -aon | findstr 8081
если это показывает вам что-то, это означает, что порт заблокирован. если возможно, разблокируйте этот порт.
В противном случае вам нужно будет изменить порт. Как это сделать, уже упоминалось в комментарии Навина Кумара выше.
react-native run-android --port=9001
Убедитесь, что 9001 также не используется :)
Круто .. это сработало для меня. Просто помните, если у вас есть привычка запускать сервер реагирования с помощью «npm start», добавьте « --port = 9001» в свой стартовый скрипт, а также в package.json.
Попробуйте следующее.
Возможно после предыдущих шагов у вас есть запуск npm --reset-cache
Я работаю, я надеюсь, что это поможет вам.
Мое решение для этого, как показано ниже:
Запустить Метро-сервер
$ react-native start
Запустить Android
$ react-native run-android
Если вы видите ошибки, говорящие, что «порт 8081 уже используется», вы можете убить этот процесс и перезапустить его.
$ react-native start
По умолчанию крошечный сервер 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/начало работы
Я просто хочу добавить неочевидную возможность, не рассмотренную здесь. Я использую @react-native-community/netinfo для обнаружения изменений в сети, в первую очередь состояния сети. Чтобы проверить состояние отключения сети, переключатель WIFI (на эмуляторе) должен быть выключен. Это также эффективно отсекает мост между эмулятором и средой отладки. Я не включал WIFI после тестов, так как был вдали от компьютера и сразу же забыл об этом, когда вернулся.
Есть вероятность, что это может иметь место и для кого-то еще, и это стоит проверить, прежде чем предпринимать какие-либо другие решительные шаги.
Это недооцененный ответ!
Эти шаги действительно помогают мне:
Шаг 1: Создать каталог в android/app/src/main/assets
команда Linux: mkdir android/app/src/main/assets
Шаг 2: Переименуйте index.android.js (в корневом каталоге) в index.js (Возможно есть файл index.js в таком случае его не нужно переименовывать), затем выполните следующую команду:
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
Шаг 3:
Создайте свой APK: react-native run-android
Пожалуйста, используйте index.js в последней версии.
Наслаждаться :)
Каково расположение этого файла в собственном проекте index.android.j?
@Arbaz.in в корневом каталоге.
@ Arbaz.in Возможно, в корневом каталоге есть файл index.js, и в этом случае вы не нужно переименуете его.
@Саид да нашел
@Saeed Шаги для окон?
Для всех (Mac, Linux, Windows)
Это может только запустить приложение на данный момент, но как это позволит отладку и горячую загрузку? это не идеальное решение для достижения этой цели.
@buddhiv Тогда какое идеальное решение?
Это сработало для меня. Но я не мог понять, что произошло. Эта ошибка начала происходить просто так.
Это сработало, и я могу отладить, и горячая загрузка тоже работает, хотя, как сказал @JmLavoier, я не знаю, почему она перестала работать и почему теперь она снова работает.
Теперь логирование не работает, как запустить заново
У меня это сработало, и я смог загрузить приложение в эмуляторе, но сейчас. Я не могу собрать его из командной строки ./gradlew assembleRelease for error "> Task: app:mergeReleaseResources FAILED"
Есть ли способ "отменить" это??
Если у вас все правильно настроено, попробуйте следующее:
adb reverse tcp:8081 tcp:8081
Почему?
When the RN packager is running, there is an active web server accessible in your browser at 127.0.0.1:8081. It's from this server that the JS bundle for your application is served and refreshed as you make changes. Without the reverse proxy, your phone wouldn't be able to connect to that address.
Все кредиты Свинглайн0 .
Не могли бы вы добавить к своему ответу, почему это должно работать и что делает эта команда?
целый день пытался переключать библиотеки, и это была моя проблема
Для меня эта ошибка была вызвана обновлением react-native
Starting with Android 9.0 (API level 28), cleartext support is disabled by default.
Если вы проверяете разницу обновлений, вам нужно создать манифест отладки.
android/app/src/debug/AndroidManifest.xml
<?xml version = "1.0" encoding = "utf-8"?>
<manifest xmlns:android = "http://schemas.android.com/apk/res/android"
xmlns:tools = "http://schemas.android.com/tools">
<uses-permission android:name = "android.permission.SYSTEM_ALERT_WINDOW"/>
<application android:usesCleartextTraffic = "true" tools:targetApi = "28" tools:ignore = "GoogleAppIndexingWarning" />
</manifest>
См. дополнительную информацию: https://stackoverflow.com/a/50834600/1713216
https://react-native-community.github.io/upgrade-helper/
У меня работало на RN 0.61.3.
К сожалению, это не сработало для меня. У меня уже было это, и я все еще получаю ту же ошибку, хотя Metro Bundler работает.
Я обнаружил, что иногда мне нужны дополнительные переопределения, если у меня определен networkSecurityConfig, но, похоже, эти настройки всегда вызывают у меня проблемы. Вы можете попробовать удалить любой конфиг безопасности и указать android:usesCleartextTraffic = "true" в главном AndroidManifest.xml посмотрите, сработает ли это?
У меня есть все эти настройки, включая android:usesCleartextTraffic = "true", но я все еще не могу запустить приложение на реальном устройстве.
Работал на меня. Чтобы внести некоторую ясность, этот шаг был специально упомянут в документации по обновлению RN: reactnative.dev/docs/… Я могу порекомендовать просто скопировать отладочный AndroidManifest из проекта шаблона RN, сработало чудо: github.com/facebook/react-native/blob/master/template/android/…
У меня была такая же проблема, проблема для меня заключалась в том, что адб не был в правильном пути среды, ошибка сообщает вам порт метро, пока вы находитесь в adb, порты убиваются и перезапускаются.
Note: Or depending where is located adb.exe in your machine
Запустите сборку Android снова
$ react-native run-android
Или
$ react-native start
$ react-native run-android
Вы можете попробовать следующее:
Добавьте эту строку в свой AndroidManifest.xml.
<application
[...]
android:usesCleartextTraffic = "true"
/>
[...]
</application>
Обновлено:
Будьте осторожны, это долженfalse в производстве для безопасности вашего приложения.
После нескольких часов поиска ответа. Решение состояло в том, чтобы сделать узел понижения до версии 12.4.
В моем случае я понимаю, что ошибка возникает только в версии React Native 0.60 с версией Node 12.6.
Я столкнулся с этим только потому, что мой Wi-Fi был ошибочно отключен на моем эмуляторе. Я снова включил его, и он начал работать нормально. Надеюсь, кому-то это будет полезно
Для меня эта проблема началась с обновления react-native. Обновление было необходимо для добавления 64-битной поддержки.
Before:
--------
Environment:
Node: 10.15.0
npm: 6.9.0
Watchman: 4.9.0
Xcode: Not Found
Android Studio: 3.4 AI-183.6156.11.34.5692245
Packages: (wanted => installed)
react: 16.0.0-alpha.12 => 16.0.0-alpha.12
react-native: ~0.55.2 => 0.55.4
react-native-cli: 2.0.1
After:
------
info
React Native Environment Info:
Binaries:
Node: 10.15.0
npm: 6.9.0
Watchman: 4.9.0
SDKs:
Android SDK:
API Levels: 23, 26, 27, 28
Build Tools: 27.0.3, 28.0.3
System Images: android-28 | Google APIs Intel x86 Atom
IDEs:
Android Studio: 3.4 AI-183.6156.11.34.5692245
Xcode: /undefined - /usr/bin/xcodebuild
npmPackages:
react: ^16.8.6 => 16.9.0
react-native: 0.59.9 => 0.59.9
npmGlobalPackages:
create-react-native-app: 2.0.2
react-native-cli: 2.0.1
Кроме того, одно важное изменение, которое я сделал для обновления, было в ../android/build/build.gradle.
android {
...
defaultConfig {
...
targetSdkVersion 28
...
}
...
}
Мне пришлось изменить targetSdkVersion с 27 на 28 после предупреждения, когда я попытался загрузить сборку (.apk) в консоль Google Play. Мало ли я понял, что это было основной причиной вышеуказанной ошибки для меня. Немедленные ответы @tom и @tinmarfrutos имели абсолютный смысл.
Я решил проблему, добавив android:usesCleartextTraffic="true" в свой файл android/app/src/debug/AndroidManifest.xml.
Если вы работаете в ОС Linux, может быть случай, когда ваш удаленный сервер npm не работает. Откройте другой терминал (с каталогом проекта) и запустите эту команду запуск sudo npm или sudo react-native start перед выполнением sudo react-native run-android
В моем случае я установил прокси в своем эмуляторе. После удаления этого прокси все работает нормально.
Сообщение об ошибке в эмуляторе вводит в заблуждение. В моем случае я использовал Macbook. Мне нужно было изменить разрешения на android/gradlew, запустив $ chmod 755 ./gradlew, после чего приложение можно было собрать и развернуть на эмуляторе Android.
Если вы используете Linux, откройте терминал из корневого каталога приложения и запустите
npm start
затем откройте другое окно терминала и запустите:
react-native run-android
В некоторых случаях вам может понадобиться закрыть порт сборщика React-native и перезапустите приложение с тем же процессом
1.sudo kill -9 $(sudo lsof -t -i:9001)
2.npm start inside the project
3. react-native run-android
Что сработало для меня:
$ adb devices$ react-native run-androidвозможность этой ошибки также неправильный путь,проверьте один раз
export ANDROID_HOME=/Users/microrentindia/Library/Android/sdk/
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
Никогда не думал об этом. Но это был ответ для меня.
просто добавьте три всплеска: node_modules\metro-config\src\defaults\blacklist.js
заменить эту часть:
var sharedBlacklist = [
/node_modules[/\\]react[/\\]dist[/\\].*/,
/website/node_modules/.*/,
/heapCapture/bundle\.js/,
/.*/__tests__/.*/
];
Я также столкнулся с этой проблемой. Я решил этот следующий шаг.
Проверьте путь Android SDK в Окружающая среда Истинная.
Добавлять
ANDROID_HOME = C:\Users\user_name\AppData\Local\Android\Sdk в Системная переменная
а также
C:\Users\user_name\AppData\Local\Android\Sdk\platform-tools путь в Системная переменная
заменить общий черный список, как показано ниже, сегмент кода,
var sharedBlacklist = [
/node_modules[/\\]react[/\\]dist[/\\].*/,
/website/node_modules/.*/,
/heapCapture/bundle\.js/,
/.*/__tests__/.*/
];
в node_modules/metro-config/src/default/blacklist.js
Затем запустите npx react-native run-android --port 9001.
Удачного кодирования..!
После попытки решить эту проблему в моем рабочем пространстве я нашел решение.
Эта ошибка связана с тем, что в Metro возникают проблемы с использованием некоторых комбинаций версии NPM и Node.
У вас есть 2 альтернативы:
Альтернатива 2: Перейдите к этому файлу: \node_modules\metro-config\src\defaults\blacklist.js и измените этот код:
var sharedBlacklist = [
/node_modules[/\\]react[/\\]dist[/\\].*/,
/website/node_modules/.*/,
/heapCapture/bundle\.js/,
/.*/__tests__/.*/
];
и изменить на это:
var sharedBlacklist = [
/node_modules[/\\]react[/\\]dist[/\\].*/,
/website/node_modules/.*/,
/heapCapture/bundle\.js/,
/.*/__tests__/.*/
];
Please note that if you run an
npm installor ayarn installyou need to change the code again.
Начиная с Android 9.0 (уровень API 28) поддержка открытого текста по умолчанию отключена.
Это то, что вам нужно сделать, чтобы избавиться от этой проблемы, если вы правильно выполняете обычные команды запуска.
И измените файл манифеста Android следующим образом.
<application
android:name = ".MainApplication"
android:icon = "@mipmap/ic_launcher"
android:usesCleartextTraffic = "true" // add this line with TRUE Value.
android:theme = "@style/AppTheme">
Сначала выполните шаги 4 и 5, затем вы можете запустить свой проект. Если вы не получили результат (с шагами 4 и 5), выполните следующие действия.
1- Попробуйте понизить версию Node (текущая версия 12.13.1)
choco uninstall nodejs
choco install nodejs --version 12.8
2- Добавить путь к модулю npm (C:\Users\your user name\AppData\Roaming\npm) в системные переменные вместо пользовательских переменных
3- Установить реакцию в глобальном масштабе с помощью команды
npm install -g react-native-cli
4- Перейдите в корень каталога вашего проекта и выполните следующую команду:
react-native start
5- Откройте другой терминал в корне вашего проекта и выполните следующую команду:
react-native run-android
РЕДАКТИРОВАТЬ :
Вы используете Genymotion? Если да, выполните следующий шаг:
Если после вышеуказанного шага вы получите следующую ошибку?
error Failed to launch emulator. Reason: No emulators found as an output of `emulator -list-avds`.
Откройте свой genymotion и перейдите к:
genymotion menu->Settings->ADB-> Затем выберите use custom android sdk tools (нажмите «Обзор», чтобы найти местоположение SDK)
Наконец, снова запустите свой проект.
У меня также работала версия 12.9. Спасибо, я обновился до версии 12.13.x и начал сталкиваться с вышеуказанной проблемой.
Предыстория этого ответа: github.com/facebook/react-native/issues/26598
Это сработало для меня, но потом я получил development server returned response error code: 500... Metro has encountered an error: EACCESS: permission denied /tmp/metro-cache/33/.... Быстрый chmod +777 /tmp -R на моем локальном компьютере решил проблему. Предупреждение: никогда не +777 :-D
Это сработало для меня после нескольких попыток.
В файле node_modules\metro-config\src\defaults\blacklist.js
Заменять :
var sharedBlacklist = [
/node_modules[/\\]react[/\\]dist[/\\].*/,
/website/node_modules/.*/,
/heapCapture/bundle\.js/,
/.*/__tests__/.*/
];
с участием :
var sharedBlacklist = [
/node_modules[/\\]react[/\\]dist[/\\].*/,
/website/node_modules/.*/,
/heapCapture/bundle\.js/,
/.*/__tests__/.*/
];
надеюсь это поможет.
У меня тоже сработало. Но почему я должен был это исправить? Что пошло не так?
Судя по всему, metro-config использовал \ для путей вместо /, которые этот ответ предлагает изменить. Не делайте этого. Изменение пакетов npm означает, что вся ваша команда должна делать это на своей машине, в CI, на стадии подготовки, в рабочей среде и каждый раз, когда Metro-config выпускает обновление. Лучший подход — разветвить metro-config на GitHub, зафиксировать исправление, отправить и отправить PR, чтобы исправить это для всех.
обновить эту часть в черном списке метро
var sharedBlacklist = [
/node_modules[/\\]react[/\\]dist[/\\].*/,
/website/node_modules/.*/,
/heapCapture/bundle\.js/,
/.*/__tests__/.*/
];
вы также можете понизить версию node js до версии менее 12 и удалить nodemodule, а затем снова запустить npm install
Я сделал: реактивный запуск а также npx react-native run-android.
Однако для Min19 (на основе Ubuntu) у меня была такая же проблема, пока я не запустил:
echo fs.inotify.max_user_watches=582222 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
От: https://reactnative.dev/docs/troubleshooting#content
По крайней мере, у меня приложение работает на моем мобильном телефоне.
Попробуйте выполнить следующие действия, если вы пробовали все, что упомянуто в приведенных выше решениях:
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
Ничего себе, это помогло мне частично. Я готовил свое приложение для Google Play Market, все, что я сделал, это добавил новые значки активов для Android и изменил целевую версию на 28. Мне пришлось вернуться к версии v27, и все снова начало работать ... Я не знаю, почему реагировать не работает с сдк v28.
У меня возникла та же проблема, после выполнения следующих шагов проблема была решена
watchman watch-del-all.rm -rf node_modules && npm install.rm -rf /tmp/metro-bundler-cache-*rm -rf /tmp/haste-map-react-native-packager-*Я уверен, что это какая-то комбинация других вещей, упомянутых здесь, таких как разрешение открытого текста, который я включил для локального хоста. Но это была последняя часть головоломки.
project.ext.react = [
entryFile: "index.js",
// ADD THESE THREE
bundleAssetName: "index.android.bundle",
bundleInDebug: true,
bundleInRelease: true
]
РН: 0,61,3
это то, что исправило это для меня! Я строил вариант, и мне понадобился bundleInStaging: true для варианта staging! Жаль, что я не видел этот ответ намного позже, это могло бы действительно помочь мне когда-нибудь!
Я столкнулся с той же проблемой, следуя React Native руководство (разработка для Linux и таргетинг на Android).
Этот проблема помог мне решить проблему в следующих шагах. Выполните следующие команды в следующей последовательности:
mkdir android/app/src/main/assetsreact-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/resreact-native run-androidВы можете автоматизировать вышеуказанные шаги, поместив их в scripts часть package.json следующим образом:
"android-linux": "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"
Затем вы можете просто выполнять npm run android-linux из командной строки каждый раз.
По-видимому, ни один из ответов не решил проблему для меня. Я смог запустить приложение, отвечающее за реакцию, на эмуляторе, но тот же код (даже когда сервер работал) выдал мне эту ошибку при запуске приложения на устройстве.
Я смог решить эту проблему, выполнив следующую команду в терминале:
adb reverse tcp:8081 tcp:8081
Я была такая же проблема. Но этот метод решил это.
Перейдите в папку Android, используя
cd android, затем gradlew clean или ./gradlew clean в зависимости от того, что подходит для вашей ОС.
Я столкнулся с подобной проблемой. npx react-native init создает файл .gitignore, который игнорирует папку <project>/android/app/src/debug. Если вы позже клонировали этот проект, эта папка будет отсутствовать.
Решение простое. В будущем добавьте эту строку в конец файла .gitignore.
!android/app/src/debug
Для вашего текущего проекта попросите создателя проекта зафиксировать эту папку. Я столкнулся с этой ошибкой в реактивной нативной версии 0.63.
Как и большинство из нас, я предполагаю, что вы используете VSCODE. В моем случае я побежал
npx react-native start
с отдельного терминала
Теперь запустите npx react-native run-android со своего терминала в VSCODE.
Вот как я решил эту проблему, не касаясь сборки:
1- Закрыл виртуальное устройство
2- Протестировано на физическом устройстве -- (работает)
3- Создано новое виртуальное устройство с API 30 Android 10+.
4- Попробуйте еще раз на только что созданном виртуальном устройстве, и все заработает как шарм.
Хотя это и не совсем исправление, но это был хороший способ выполнить работу. : ))
Привет, ребята, комбинация двух авансеров решила мою проблему. Это было связано с портом.
adb reverse tcp:8088 tcp:8088
react-native run-android --port=8088
Сделав это, приложение отлично загрузилось на моем телефоне, подключенном через USB. Я думаю, что мой AV или Vagrant или что-то еще на моем ПК использовали этот порт.
Вы можете изменить 8088 на что-то другое, если это необходимо.
Наслаждаться!
В моем случае я просто закрываю эмулятор формы приложения
Затем запустите это снова
react-native run-android
Это происходит всякий раз, когда устройство Android не может подключиться к серверу метро. Если вышеуказанное не работает, убедитесь, что на вашем устройстве Android не настроен прокси-сервер. (Настройки > Прокси > Без прокси).
В моем случае Wi-Fi и мобильные данные эмулятора были отключены.
Эта ошибка появилась из ниоткуда у меня и что решило это для меня:
Запустите следующие две команды
adb kill-serveradb start-serverПосле этого запустите команду npm start, а затем обычную зеленую кнопку запуска в студии Android.
Я на Windows 11 и столкнулся с этой проблемой. Убейте и запустите сервер adb, решенный для меня.
Я попробовал все решения ниже, прокомментированные и отвеченные разными людьми. Иногда это работает, но иногда ни одно решение не работает для меня ..... лучшее решение для этой ошибки удалить APK с физического устройства и снова запустить приложение ... для меня это работает на 100% !!!
шаг 1-
Uninstall
APKfrom physical Device
шаг 2-
Go to Android folder
cd android
шаг 3-
Enter Command
Gradlew Clean
шаг 4-
Enter
Cd..back to Project
шаг 4-
Run Command
npx react-native run-androidORreact-native run-android
Возможно ваш порт занят. Попробуйте запустить на другом порту:
adb reverse tcp:6666 tcp:6666
react-native run-android --port 6666
проверьте, свободен ли используемый вами порт
линукс:
lsof | grep LISTEN
окна:
netstat -an
Пожалуйста, проверьте, не использует ли сервер Metro какие-либо другие порты. Если есть, остановите все серверы, затем перезапустите сервер и повторите попытку.
this works for me on ubuntu
1. if you are having node version 17 first downgrade its version:-
You can use n for node's version management.
this is very easy to use.
$ npm install -g n
then you can show your node version:
$ node -v
v16.13.2
2. create an assets folder inside root of the project:-
project\android\app\src\main\assets
set folder name should be assets
3. now the final step implement the given code inside the project folder:-
$cd project
/project$ 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
4. after following all these step react-native was successfully running on my pc
В моем случае я пытался запустить приложение на эмуляторе. Но я получал это
Этот IP 10.0.2.2 был доступен из браузера эмулятора Chrome. Проблема в том, что этот IP-адрес не занесен в белый список в настройках сетевой безопасности Android. Итак, какой бы IP-адрес вы ни видели, добавьте его в настройки ниже, и все готово.
./android/app/src/main/AndroidManifest.xml
<application
android:name = ".MainApplication"
+ android:usesCleartextTraffic = "true" <- Add this line
android:allowBackup = "true"
android:label = "@string/app_name"
android:icon = "@mipmap/ic_launcher"
./android/app/src/main/res/xml/network_security_config.xml
</network-security-config>
<domain-config cleartextTrafficPermitted = "true">
<domain includeSubdomains = "true">localhost</domain>
<domain includeSubdomains = "true">10.0.1.1</domain>
<domain includeSubdomains = "true">10.0.2.2</domain>
<domain includeSubdomains = "true">10.0.3.2</domain>
</domain-config>
</network-security-config>
Просто замените <domain includeSubdomains = "true">10.0.2.2</domain> на IP-адрес, указанный в сообщении об ошибке от react-native.
вы можете попробовать эту ссылку stackoverflow.com/questions/32572399/… ?