Сервер JS не распознан, продолжается сборка

Окружающая среда

Windows 10

Нпм 5.5.1

реагировать родной кли 2.0.1

реактивный натив 0.50.3

Genymotion Google Nexus 7 — 6.0.0 API 23

Материалы для Android:

Версия SDK: 26

buildToolsVersion '26.0.2'

TargetsdkВерсия: 26

скомпилировать "com.android.support:appcompat-v7:26.0.2"

Я запустил npm start --reset-cache, а также react-native start --reset-cache, но я продолжаю получать нераспознанный JS-сервер, продолжая сборку. Это не позволяет упаковщику связывать активы перед запуском на моем эмуляторе.

Я следовал решению 1 в этом сообщении:

https://github.com/facebook/react-native/issues/9136#issuecomment-306486102

а также этот:

Не удалось распознать JS-сервер

Я начал этот проект с помощью приложения для инициализации React Native. Уже возникли проблемы со сборкой с этой ошибкой. проверка сообщений serval здесь и на других сайтах, упомянутых с использованием очистки кеша npm и react-native start --reset-cache, и это, похоже, не помогло, я продолжаю получать ту же ошибку. Одно время у меня все работало гладко, но я изменил пакет npm и думаю, что снова сломал его. любая помощь будет оценена. Я также обновил версию Gradle и синхронизировал ее с проектом.

Вот несколько скриншотов того, что я испытываю...

Вывод эмулятораВывод Bash

** КОД **

index.js

import { AppRegistry } from 'react-native';
import App from './App';

AppRegistry.registerComponent('hihi', () => App);

App.js /** * Пример приложения React Native * https://github.com/facebook/react-native * @flow */

import React, { Component } from 'react';
import {
  Platform,
  StyleSheet,
  Text,
  View
} from 'react-native';

const instructions = Platform.select({
  ios: 'Press Cmd+R to reload,\n' +
    'Cmd+D or shake for dev menu',
  android: 'Double tap R on your keyboard to reload,\n' +
    'Shake or press menu button for dev menu',
});

export default class App extends Component<{}> {
  render() {
    return (
      <View style={styles.container}>
        <Text style={styles.welcome}>
          Welcome to React Native!
        </Text>
        <Text style={styles.instructions}>
          To get started, edit App.js
        </Text>
        <Text style={styles.instructions}>
          {instructions}
        </Text>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
  welcome: {
    fontSize: 20,
    textAlign: 'center',
    margin: 10,
  },
  instructions: {
    textAlign: 'center',
    color: '#333333',
    marginBottom: 5,
  },
});

app.json

{
  "name": "hihi",
  "displayName": "hihi"
}

.babelrc

{
  "presets": ["react-native"]
}

package.json

{
    "name": "hihi",
    "version": "0.0.1",
    "private": true,
    "scripts": {
        "start": "node node_modules/react-native/local-cli/cli.js start",
        "test": "jest"
    },
    "dependencies": {
        "react": "16.0.0",
        "react-native": "0.50.3",
        "watchman": "^0.1.8"
    },
    "devDependencies": {
        "babel-jest": "21.2.0",
        "babel-polyfill": "^6.26.0",
        "babel-preset-es2015": "^6.24.1",
        "babel-preset-react-native": "4.0.0",
        "babel-register": "^6.26.0",
        "jest": "21.2.1",
        "react-test-renderer": "16.0.0"
    },
    "jest": {
        "preset": "react-native"
    }
}

ОБНОВЛЕНИЕ ОБНОВЛЕНИЕ

Я понял это, это была комбинация предложений в этом посте и этого решения:

Не удалось найти com.android .tools.build:gradle:3.0.0-alpha1 в круге ci

Мне нужно было включить google() в оба местоположения, а также решить, как переключить его на порт 8082 и включить этот порт в эмуляторе. СПАСИБО ВСЕМ БОЛЬШОЕ ЗА ПОМОЩЬ!!! знак равно


person Resdan Logan    schedule 16.11.2017    source источник
comment
Предполагая, что вы запускаете это из локального эмулятора, можете ли вы опубликовать код? Особенно то, что ты изменил.   -  person sfratini    schedule 17.11.2017
comment
Честно говоря, я понимаю это, даже когда я реагирую на запуск приложения, чтобы я мог даже показать вам это. сейчас делаю скриншоты   -  person Resdan Logan    schedule 17.11.2017
comment
Пожалуйста, добавьте код приложения и код, а не картинки. я их почти не вижу лол   -  person sfratini    schedule 17.11.2017
comment
Есть ли что-то еще, чего мне не хватает в коде, что вы хотели бы увидеть?   -  person Resdan Logan    schedule 17.11.2017
comment
Очень странно, хотя вы используете очень новую версию RN, и они обычно ломают вещи с жутким выпуском. Я не обновляю основную версию, если мне это действительно не нужно. На самом деле я не вижу никаких проблем в вашем коде или скриншотах. При запуске в режиме отладки менеджер JS не выполняет сборку сразу, он ожидает первого запроса от эмулятора/устройства. Вы устанавливаете APK? После запуска APK вы видите консоль диспетчера js, говорящую, что она связана? Я не совсем понимаю, почему вы сказали, что испортили пакет npm, но это пример проекта.   -  person sfratini    schedule 17.11.2017
comment
Еще вы можете попробовать удалить папку node_modules и установить все заново.   -  person sfratini    schedule 17.11.2017
comment
Я прошел ряд шагов, чтобы запустить стартовый проект, а затем он снова перестал работать. Я все еще работаю над решением, и я опубликую его, как только смогу.   -  person Resdan Logan    schedule 18.11.2017


Ответы (5)


Шаги, которые помогли мне в подобном случае:

  1. Запуск упаковщика на порту, отличном от 8081: react-native start --port 8082 --reset-cache
  2. Выполнение команды react-native run-android --port 8082 во втором окне командной строки.
  3. После появления экрана ошибки нажмите Ctrl + M.
  4. Нажмите кнопку Dev Settings внизу.
  5. Нажмите кнопку Debug server host & port for device.
  6. Пишем localhost:8082 и нажимаем кнопку OK.
  7. Снова запущена команда react-native run-android --port 8082
person Marcin Dorociak    schedule 17.11.2017
comment
Круто.. Я сделал это и, по крайней мере, подключился к своему серверу, но снова столкнулся с этой ошибкой: Loading dependency graph, done. Bundling index.js [development, non-minified] 0.0% (0/1), failed. error: bundling failed: NotFoundError: Cannot find entry file index.js in any of the roots: ["c:\'starter_application_name"] at DependencyGraph._getAbsolutePath (MY_COMPUTER\node_modules\metro-bundler\src\node-haste\DependencyGraph.js:305:11) at DependencyGraph.getDependencies - person Resdan Logan; 18.11.2017
comment
он ищет index.js и не находит его по какой-то причине =/ - person Resdan Logan; 18.11.2017
comment
Первая идея. Не могли бы вы попробовать команду react-native start --port 8082 --reset-cache ? - person Marcin Dorociak; 18.11.2017
comment
А в пунктах 2. и 7. это будет команда: react-native run-android --port 8082 - person Marcin Dorociak; 18.11.2017
comment
может ли это быть связано с тем, что я использую Git-Bash вместо приглашения cmd? Я могу получить доступ к android в cmd с помощью android, но это не отображается в моем git bash, я добавил свои переменные PATH и все такое, я также пытаюсь добавить их в свой файл bashrc. Раньше это не вызывало проблем, поэтому я пробую все возможные способы, которые только могу придумать. Спасибо всем за ваши усилия! знак равно - person Resdan Logan; 18.11.2017
comment
Я собираюсь следовать этому сообщению, потому что я думаю, что это проблема, с которой я сталкиваюсь: stackoverflow.com/questions/44446523/ - person Resdan Logan; 20.11.2017
comment
Это действительно помогло мне. Кто-нибудь может объяснить, почему нормальная вещь не работает? - person Navin prasad; 05.02.2018
comment
@Navin prasad, потому что порт 8081 по умолчанию, скорее всего, занят другим процессом. - person Ayaz Alifov; 12.11.2018
comment
Я застрял в предупреждении: кеш преобразования был сброшен. Загрузка графа зависимостей выполнена. Что делать дальше.? - person mohammed nathar; 28.11.2018
comment
Где мне написать =› ctrl+M - person Ashish Singh Rawat; 28.03.2019

У меня была эта проблема, когда у меня был другой процесс, работающий на порту 8081.

  1. Найдите процесс lsof -i tcp:8081
  2. Получить PID, в моем случае 25120
  3. Убить процесс: kill -9 25120
  4. Запустите React Native снова
person ooolala    schedule 21.03.2019

В моем случае (была та же ошибка) я просто проверил netstat в win CMD (проверьте для справки). Моя проблема заключалась в запуске другого экземпляра на порту: 8081, поэтому мне пришлось убить этого ублюдка.

  1. Закройте все запущенные экземпляры локального сервера.
  2. Проверьте ссылку для справки об убийстве: процесс 8081 в Windows
  3. Перестроить и перезапустить проект.
  4. Выгода
person Aleksander Dudek    schedule 17.08.2018

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

Сначала подтвердите, если это так:

$> netstat -aon|findstr “8081”

Теперь измените его, чтобы он работал с нового порта по умолчанию.

а) Измените переменную env в Windows, чтобы установить новый порт для RN:

$> SET RCT_METRO_PORT=8083

Это используется в RN для использования в качестве порта по умолчанию, и если он не установлен, по умолчанию используется 8081.

б) Удалить старый реверс:

$> adb reverse –remove-all

c) Установите новый обратный порт для устройства adb:

$> adb reverse tcp:8083 tcp:8083

г) Измените настройки разработчика на устройстве с 8081 по умолчанию на 8083.

Запустите приложение, а затем запустите входное ключевое событие 82, теперь выберите Настройки разработчика > Хост сервера отладки… > введите новый URL-адрес: localhost:8083

построить и запустить снова

person Raheel Hasan    schedule 20.12.2018

Попробуйте отключить локальную серверную программу, такую ​​как MAMP, WAMP, OpenServer и т. д. Они могут использовать порт 8081.

person Raximjon Komiljonov    schedule 15.05.2019