Ответ 1
Вы еще не запустили пакет Запустите npm start
или react-native start
в корне вашего проекта до react-native run-android
response-native run-android завершает работу, оставляя сообщение в сообщении в симуляторе Android. Сообщение выглядит следующим образом
Невозможно загрузить скрипт. Убедитесь, что вы используете сервер Metro или что ваш пакет 'index.android.bundle' правильно упакован для выпуска.
Я полностью сбит с толку тем, что делаю неправильно.
Изменение: добавление скриншота ошибки
Вы еще не запустили пакет Запустите 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
, в этом случае вам не нужно его переименовывать), затем выполните следующую команду:
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 в последней версии.
Наслаждаться :)
Для меня эта ошибка была вызвана обновлением реагировать родной
Начиная с 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/...
Вы можете попробовать следующее:
Добавьте эту строку в свой AndroidManifest.xml
<application
[...]
android:usesCleartextTraffic="true"
/>
[...]
</application>
Подобная проблема произошла со мной Видимо Mcafee блокирует порт 8081, мне потребовались часы, чтобы понять это
Попробуйте запустить реакцию-нативный run-android --port = 1234
Как только приложение отобразится в эмуляторе с ошибкой, перейдите в настройки dev (доступны по нажатию crtl + M)
Измените "Отладочный хост-сервер и порт для устройства" на "localhost: 1234"
закройте приложение и запустите его из ящика приложения
надеюсь, это вам тоже поможет !!
если у вас все настроено правильно, попробуйте это:
ADB обратный протокол: 8081 протокол: 8081
Почему? "Когда упаковщик RN работает, в вашем браузере есть активный веб-сервер по адресу 127.0.0.1:8081. Именно с этого сервера пакет JS для вашего приложения обслуживается и обновляется по мере внесения изменений. Без обратного прокси-сервера ваш телефон не сможет подключиться к этому адресу. "
все кредиты для Swingline0
У меня возникла та же проблема, проблема для меня заключалась в том, что adb не был в правильном пути к среде, ошибка говорит вам о том, что порт метро, а вы находитесь в adb, порты убиты и перезапущены.
Примечание. Или в зависимости от того, где находится adb.exe на вашем компьютере
Запустите сборку Android еще раз
$ react-native run-android
Или
$ react-native start
$ react-native run-android
Мое решение этого, как показано ниже:
Запустить Metro сервер
$ react-native start
Запустить Android
$ react-native run-android
Если вы видите сообщение об ошибке "порт 8081 уже используется", вы можете завершить этот процесс и запустить его снова.
$ react-native start
После нескольких часов в поисках ответа. Решением было сделать узел понижения до версии 12.4.
В моем случае я понимаю, что ошибка только что происходит в версии реакции 0,60 с версией узла 12,6.
ВАЖНО! В вашей среде может быть много виртуальных устройств. Убедитесь, что если вы меняете AVD, повторите настройку снова.
Если у вас возникла ошибка выше, вы должны сначала проверить, что работает на порту 8081
Самый быстрый способ найти это, используя следующую команду в терминале
netstat -aon | findstr 8081
если это что-то показывает, значит порт заблокирован. если возможно, разблокируйте этот порт.
В противном случае вам нужно будет изменить порт. Процесс, который сделал это, уже упоминался выше в комментарии Naveen Kumar.
реактивный родной андроид --port = 9001
Убедитесь, что 9001 тоже не используется :)
Попробуйте следующее.
Может быть, после предыдущих шагов у вас есть запуск npm start - --reset-cache
Я работаю, надеюсь, это поможет вам.
Я просто хочу добавить неочевидную возможность, не описанную здесь. Я использую @response-native-community/netinfo для обнаружения сетевых изменений, в первую очередь состояния сети. Чтобы проверить состояние отключения сети, переключатель WIFI (на эмуляторе) необходимо отключить. Это также эффективно отсекает мост между эмулятором и средой отладки. Я не включил WIFI после тестов, так как был далеко от компьютера и сразу же забыл об этом, когда вернулся.
Существует вероятность того, что это может иметь место и для кого-то другого, и его стоит проверить, прежде чем предпринимать какие-либо другие радикальные шаги.
Для меня эта проблема началась с апгрейда реактив-родной. Обновление было необходимо для добавления 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
По умолчанию крошечный сервер 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
изменить настройку dev на localhost: 8081
Я испытал это только потому, что мой Wi-Fi был ошибочно выключен на моем эмуляторе. Я включил его, и он начал работать нормально. Надеюсь, что это полезно для кого-то
Если вы работаете в ОС Linux, возможно, ваш удаленный сервер npm не работает. Откройте другой терминал (с каталогом проекта) и выполните эту команду sudo npm start или sudo response-native start перед выполнением sudo реагировать-native run-android
В моем случае я установил прокси в моем эмуляторе. После того, как я удалил этот прокси-сервер, он возвращается к нормальной работе
Сообщение об ошибке на эмуляторе вводит в заблуждение. В моем случае я использовал Macbook. Мне нужно было изменить разрешения для Android/Gradlew, запустив $ chmod 755 ./gradlew
, а затем приложение могло быть собрано и развернуто в эмуляторе Android.
Если вы используете Linux, откройте терминал из корневого каталога приложения и запустите
npm start
затем откройте другое окно терминала и запустите реактивный родной бег
В некоторых случаях вы можете закрыть порт 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
Решение, которое сработало для меня, следующее:
var sharedBlacklist = [
/node_modules[\/\\]react[\/\\]dist[\/\\].*/,
/website\/node_modules\/.*/,
/heapCapture\/bundle\.js/,
/.*\/__tests__\/.*/
];