Невозможно загрузить скрипт. Убедитесь, что вы используете сервер Metro или что ваш пакет 'index.android.bundle' правильно упакован для выпуска

response-native run-android завершает работу, оставляя сообщение в сообщении в симуляторе Android. Сообщение выглядит следующим образом

Невозможно загрузить скрипт. Убедитесь, что вы используете сервер Metro или что ваш пакет 'index.android.bundle' правильно упакован для выпуска.

Я полностью сбит с толку тем, что делаю неправильно.


Изменение: добавление скриншота ошибки

enter image description here

Ответ 1

Вы еще не запустили пакет Запустите npm start или react-native start в корне вашего проекта до react-native run-android

Ответ 2

Эти шаги действительно помогают мне:

Шаг 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 в последней версии.

Наслаждаться :)

Ответ 3

Для меня эта ошибка была вызвана обновлением реагировать родной

Начиная с Android 9.0 (уровень API 28), поддержка открытого текста по умолчанию отключена.

Если вы посмотрите обновление diff, вам нужно создать манифест отладки. 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>

Смотрите для получения дополнительной информации: fooobar.com/questions/14264970/...

https://react-native-community.github.io/upgrade-helper/

Ответ 4

Вы можете попробовать следующее:

Добавьте эту строку в свой AndroidManifest.xml

<application
[...]
android:usesCleartextTraffic="true"
/>
[...]
</application>

Ответ 5

Подобная проблема произошла со мной Видимо Mcafee блокирует порт 8081, мне потребовались часы, чтобы понять это

Попробуйте запустить реакцию-нативный run-android --port = 1234

Как только приложение отобразится в эмуляторе с ошибкой, перейдите в настройки dev (доступны по нажатию crtl + M)

Измените "Отладочный хост-сервер и порт для устройства" на "localhost: 1234"

закройте приложение и запустите его из ящика приложения

надеюсь, это вам тоже поможет !!

Ответ 6

если у вас все настроено правильно, попробуйте это:

ADB обратный протокол: 8081 протокол: 8081

Почему? "Когда упаковщик RN работает, в вашем браузере есть активный веб-сервер по адресу 127.0.0.1:8081. Именно с этого сервера пакет JS для вашего приложения обслуживается и обновляется по мере внесения изменений. Без обратного прокси-сервера ваш телефон не сможет подключиться к этому адресу. "

все кредиты для Swingline0

Ответ 7

У меня возникла та же проблема, проблема для меня заключалась в том, что adb не был в правильном пути к среде, ошибка говорит вам о том, что порт метро, а вы находитесь в adb, порты убиты и перезапущены.

Добавить переменную среды (ADB)

  1. Открытые переменные среды
  2. Выберите во втором кадре переменную PATH и нажмите кнопку редактирования ниже
  3. Нажмите на опцию добавления
  4. Отправьте путь инструментов платформы SDK C:\Users\Мой пользователь \AppData\Local\Android\Sdk\platform-tools

Примечание. Или в зависимости от того, где находится adb.exe на вашем компьютере

  1. .Сохранить изменения

Запустите сборку Android еще раз

$ react-native run-android

Или

$ react-native start

$ react-native run-android

Ответ 8

Мое решение этого, как показано ниже:

Запустить Metro сервер

$ react-native start

Запустить Android

$ react-native run-android

Если вы видите сообщение об ошибке "порт 8081 уже используется", вы можете завершить этот процесс и запустить его снова.

$ react-native start

См. React Native Страница устранения неполадок.

Ответ 9

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

В моем случае я понимаю, что ошибка только что происходит в версии реакции 0,60 с версией узла 12,6.

Ответ 10

ВАЖНО! В вашей среде может быть много виртуальных устройств. Убедитесь, что если вы меняете AVD, повторите настройку снова.

ОТЛАДКА INFORMATION-

Если у вас возникла ошибка выше, вы должны сначала проверить, что работает на порту 8081

Самый быстрый способ найти это, используя следующую команду в терминале

netstat -aon | findstr 8081

если это что-то показывает, значит порт заблокирован. если возможно, разблокируйте этот порт.

В противном случае вам нужно будет изменить порт. Процесс, который сделал это, уже упоминался выше в комментарии Naveen Kumar.

реактивный родной андроид --port = 9001

Убедитесь, что 9001 тоже не используется :)

Ответ 11

Попробуйте следующее.

  1. Удалить папки Android и IOS
  2. запустить реагировать родной выброс
  3. запустить реагировать родной запустить андроид

Может быть, после предыдущих шагов у вас есть запуск npm start - --reset-cache

Я работаю, надеюсь, это поможет вам.

Ответ 12

Я просто хочу добавить неочевидную возможность, не описанную здесь. Я использую @response-native-community/netinfo для обнаружения сетевых изменений, в первую очередь состояния сети. Чтобы проверить состояние отключения сети, переключатель WIFI (на эмуляторе) необходимо отключить. Это также эффективно отсекает мост между эмулятором и средой отладки. Я не включил WIFI после тестов, так как был далеко от компьютера и сразу же забыл об этом, когда вернулся.

Существует вероятность того, что это может иметь место и для кого-то другого, и его стоит проверить, прежде чем предпринимать какие-либо другие радикальные шаги.

Ответ 13

Для меня эта проблема началась с апгрейда реактив-родной. Обновление было необходимо для добавления 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) в консоль goole play. Мало ли я понял, что это было основной причиной вышеуказанной ошибки для меня. Сразу же ответы @tom и @tinmarfrutos имели абсолютный смысл.

Я решил проблему, добавив Android: usedCleartextTraffic = "true" в мой android/app/src/debug/AndroidManifest.xml

Ответ 14

По умолчанию крошечный сервер JavaScript с именем "Metro Server" работает на порту 8081.

Вам нужно сделать этот порт доступным для запуска этого Сервера. Так,

  1. освободить порт
  2. закройте ваше виртуальное устройство
  3. "Реакция-родной запуск-андроид" снова.

Как освободить порт?

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

Ответ 15

изменить настройку dev на localhost: 8081

Ответ 16

Я испытал это только потому, что мой Wi-Fi был ошибочно выключен на моем эмуляторе. Я включил его, и он начал работать нормально. Надеюсь, что это полезно для кого-то

Ответ 17

Если вы работаете в ОС Linux, возможно, ваш удаленный сервер npm не работает. Откройте другой терминал (с каталогом проекта) и выполните эту команду sudo npm start или sudo response-native start перед выполнением sudo реагировать-native run-android

Ответ 18

В моем случае я установил прокси в моем эмуляторе. После того, как я удалил этот прокси-сервер, он возвращается к нормальной работе

Ответ 19

Сообщение об ошибке на эмуляторе вводит в заблуждение. В моем случае я использовал Macbook. Мне нужно было изменить разрешения для Android/Gradlew, запустив $ chmod 755 ./gradlew, а затем приложение могло быть собрано и развернуто в эмуляторе Android.

Ответ 20

Если вы используете Linux, откройте терминал из корневого каталога приложения и запустите

npm start

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

Ответ 21

В некоторых случаях вы можете закрыть порт React-native и запустите приложение с помощью того же процесса

1.sudo kill -9 $(sudo lsof -t -i:9001)

2.npm start inside the project

3. react-native run-android

Ответ 22

То, что сработало для меня, было:

  1. закрыть все консоли
  2. открыть новую консоль
  3. $ adb devices
  4. убедитесь, что подключено только одно устройство
  5. $ react-native run-android

Ответ 23

Возможность этой ошибки также неверный путь, проверьте один раз

 export ANDROID_HOME=/Users/microrentindia/Library/Android/sdk/
 export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

Ответ 24

Решение, которое сработало для меня, следующее:

мой код решения

var sharedBlacklist = [
  /node_modules[\/\\]react[\/\\]dist[\/\\].*/,
  /website\/node_modules\/.*/,
  /heapCapture\/bundle\.js/,
  /.*\/__tests__\/.*/
];