webentwicklung-frage-antwort-db.com.de

Der JS-Server wird nicht erkannt

Umgebung

Windows 10

Npm 5.5.1

reakt-native-cli 2.0.1

reaktives natives 0.50.3

Genymotion Google Nexus 7 - 6.0.0 API 23

Android-Sachen:  

Sdk-Version: 26

buildToolsVersion '26 .0.2 '

TargetsdkVersion: 26

kompilieren Sie "com.Android.support:appcompat-v7:26.0.2"

Ich habe npm start --reset-cache sowie reactative start --reset-cache ausgeführt, aber ich bekomme immer wieder, dass der JS-Server nicht erkannt wird, und fährt mit build fort. Dies verhindert, dass der Packager die Assets bündelt, bevor er auf meinem Emulator ausgeführt wird. 

Ich habe Lösung 1 in diesem Beitrag verfolgt:

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

sowie dieses hier: 

JS-Server kann nicht erkannt werden

Ich habe dieses Projekt mit dem reaktativen init APP gestartet. Habe bereits Probleme mit diesem Fehler. Serval Posts auf hier und anderen Websites, die erwähnt werden, mit npm cache clean und reaktiver Start --reset-cache überprüfen, und das schien nicht zu helfen, dass ich den gleichen Fehler bekomme. Ich habe es auf einmal problemlos laufen lassen, aber ich habe ein npm-Paket geändert und ich glaube, ich habe es wieder kaputt gemacht. Jede Hilfe wäre dankbar. Ich habe auch die Gradle-Version aktualisiert und diese in das Projekt eingefügt

Hier einige Screenshots von dem, was ich erlebe ...

Emulator OutputBash Output

** CODE **

index.js

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

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

App.js /** * Native React App * https://github.com/facebook/react-native * @fließen */

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"
    }
}

UPDATE UPDATE

Ich habe es herausgefunden, es war eine Kombination der Vorschläge in diesem Beitrag und auch dieser Lösung:

Konnte com.Android.tools.build:gradle:3.0.0-alpha1 im Kreis nicht finden

Ich brauchte google () in both Standorten sowie die Möglichkeit, auf Port 8082 umzusteigen und diesen Port auf dem Emulator zu aktivieren. DANKE ALLES SO VIEL FÜR IHRE HILFE !!! =)

6
Resdan Logan

Schritte, die mir in ähnlichem Fall geholfen haben:

  1. Packager auf einem anderen Port als 8081 ausgeführt: react-native start --port 8082 --reset-cache
  2. Ausführen des Befehls react-native run-Android --port 8082 im zweiten Eingabeaufforderungsfenster.
  3. Nach dem Fehlerbildschirm klicken Sie auf Ctrl + M.
  4. Klicken Sie unten auf Dev Settings.
  5. Klicken Sie auf die Schaltfläche Debug server Host & port for device.
  6. Schreibe localhost:8082 und klicke auf OK.
  7. Wieder ausgeführtes Kommando react-native run-Android --port 8082
14
Marcin Dorociak

Ich hatte dieses Problem, als ein anderer Prozess auf Port 8081 Ausgeführt wurde.

  1. Finde den Prozess lsof -i tcp:8081
  2. Holen Sie sich die PID, in meinem Fall 25120
  3. Beende den Prozess: kill -9 25120
  4. Starten Sie React Native Again
2
ooolala

Wenn Sie nur den Port ändern, wird das Problem nicht behoben, sondern es wird mehr erstellt, sofern Sie nicht auch den Port vom Gerät selbst aus ändern.

Bestätigen Sie zunächst, ob dies der Fall ist:

$> netstat -aon|findstr “8081”

Ändern Sie jetzt, um es von einem neuen Standardport auszuführen 

a) Ändern Sie die env-Variable in Windows, um einen neuen Port für RN festzulegen:

$> SET RCT_METRO_PORT=8083

Wird in RN als Standardport verwendet. Wenn nicht festgelegt, ist der Standardwert 8081

b) Alte Rückseite entfernen:

$> adb reverse –remove-all

c) Legen Sie einen neuen Reverse-Port für das ADB-Gerät fest:

$> adb reverse tcp:8083 tcp:8083

d) Ändern Sie die Dev-Einstellungen auf dem Gerät von 8081 auf 8083. 

Führen Sie die App und dann das Eingabeschlüsselereignis 82 aus. Wählen Sie nun Dev-Einstellungen> Debug-Server-Host aus ...> geben Sie eine neue URL ein: Localhost: 8083

bauen und wieder laufen

0
Raheel Hasan

In meinem Fall (hatte den gleichen Fehler) habe ich einfach netstat in win CMD geprüft ( Referenz überprüfen ). Mein Problem bestand darin, eine weitere Instanz auf Port auszuführen: 8081, also musste ich den Bastard töten. 

  1. Schließen Sie alle laufenden lokalen Serverinstanzen.
  2. Überprüfen Sie den Link als Referenz zum Töten: 8081-Prozess unter Windows
  3. Wiederherstellen und erneutes Projekt.
  4. Profitieren
0

Versuchen Sie, ein lokales Serverprogramm wie MAMP, WAMP, OpenServer e.t.c. auszuschalten. Sie können den 8081-Port verwenden.

0