wake-up-neo.com

Skript kann nicht geladen werden. Stellen Sie sicher, dass Sie entweder einen Metro-Server ausführen oder dass Ihr Bundle 'index.Android.bundle' zur Veröffentlichung korrekt verpackt ist

react-native run-Android Befehl wird beendet, indem eine Nachricht in Android Simulator) hinterlassen wird. Die Nachricht lautet wie folgt

"Skript kann nicht geladen werden. Stellen Sie sicher, dass Sie entweder einen Metro-Server ausführen oder dass Ihr Bundle 'index.Android.bundle' zur Veröffentlichung korrekt verpackt ist."

Ich bin total verwirrt, was ich falsch mache.


Bearbeiten: Hinzufügen eines Fehler-Screenshots

(enter image description here

133
Belle Solutions

Sie haben den Bundler noch nicht gestartet. Lauf npm start oder react-native start im Stammverzeichnis Ihres Projekts vor react-native run-Android.

65
Nerdragen

Diese Schritte helfen mir wirklich:

Schritt 1 : Erstellen Sie ein Verzeichnis in Android/app/src/main/assets

Linux-Befehl : mkdir Android/app/src/main/assets

Schritt 2 : Benennen Sie index.Android.js (Im Stammverzeichnis) in index.js ( um. Möglicherweise gibt es eine index.js - Datei In diesem Fall müssen Sie es nicht umbenennen . Führen Sie dann den folgenden Befehl aus:

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

Schritt 3 : Erstelle deine APK: react-native run-Android

Bitte verwenden Sie index.js in der neuesten Version.

Genießen :)

41
Saeed

Für mich wurde dieser Fehler durch ein Upgrade von React-Native verursacht

Ab Android 9.0 (API-Level 28)) ist die Klartextunterstützung standardmäßig deaktiviert.

Wenn Sie das Upgrade-Diff auschecken, müssen Sie ein Debug-Manifest erstellen. 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>

Weitere Informationen finden Sie unter: https://stackoverflow.com/a/50834600/1713216

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

35
Tom

Führen Sie zuerst die Schritte 4 und 5 aus, um Ihr Projekt auszuführen.

Wenn Sie das Ergebnis nicht erhalten (mit den Schritten 4 und 5), führen Sie die folgenden Schritte aus

1 - Versuchen Sie, Ihre Node - Version herunterzustufen (aktuelle Version ist 12.13.1)

  choco uninstall nodejs
  choco install nodejs --version 12.8

2 - Fügen Sie den Pfad des npm-Moduls (C:\Users\your user name\AppData\Roaming\npm) Zu Systemvariablen anstelle von Benutzervariablen hinzu

- Installiere reagiere nativ global mit dem Befehl

  npm install -g react-native-cli

4 - Gehen Sie zum Stammverzeichnis Ihres Projektverzeichnisses und führen Sie den folgenden Befehl aus:

  react-native start

5 - Öffnen Sie ein anderes Terminal im Stammverzeichnis Ihres Projekts und führen Sie den folgenden Befehl aus:

   react-native run-Android 

EDIT :

Sie verwenden Genymotion? Wenn ja, führen Sie den folgenden Schritt aus :

Wenn Sie nach dem obigen Schritt den folgenden Fehler erhalten?

error Failed to launch emulator. Reason: No emulators found as an output of `emulator -list-avds`.

Öffnen Sie Ihre Genymotion und gehen Sie zu:

genymotion-Menü -> Einstellungen -> ADB -> Wählen Sie dann Benutzerdefinierte Android SDK-Tools verwenden (klicken Sie auf) suchen, um den SDK-Standort zu finden)

Führen Sie zum Schluss Ihr Projekt erneut aus.

20
AbolfazlR

fügen Sie einfach drei Splash hinzu: node_modules\metro-config\src\defaults\blacklist.js

ersetzen Sie diesen Teil:

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

Ein ähnliches Problem ist bei mir aufgetreten. Anscheinend blockiert McAfee den 8081-Port. Ich habe Stunden gebraucht, um dies herauszufinden

Versuchen Sie, react-native run-Android --port=1234

Sobald die App mit einem Fehler im Emulator angezeigt wird, rufen Sie die Entwicklungseinstellungen auf (Zugriff durch Klicken auf Strg + M).

Ändern Sie den "Debug Server Host und Port für Gerät" in "localhost: 1234".

schließen Sie die App und starten Sie sie in der App-Schublade

hoffe das hilft dir auch !!

12
Naveen Kumar

Sie können Folgendes versuchen:

Fügen Sie diese Zeile in Ihre AndroidManifest.xml ein

<application
[...]
Android:usesCleartextTraffic="true"
/>
[...]
</application>
11
tinmarfrutos

Nachdem ich versucht hatte, dieses Problem in meinem Arbeitsbereich zu lösen, fand ich eine Lösung.

Dieser Fehler ist darauf zurückzuführen, dass bei der Verwendung einiger Kombinationen von NPM und Node version) ein Problem mit Metro auftritt.

Sie haben 2 Alternativen:

  • Alternative 1 : Versuchen Sie, npm und node version zu aktualisieren oder herunterzustufen.
  • Alternative 2 : Gehe zu dieser Datei: \node_modules\metro-config\src\defaults\blacklist.js und ändere diesen Code:

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

    und ändern Sie dies:

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

    Bitte beachten Sie, dass wenn Sie ein npm install oder ein yarn install Sie müssen den Code erneut ändern.

9
Javier C.

wenn Sie alles richtig konfiguriert haben, versuchen Sie Folgendes:

adb reverse tcp: 8081 tcp: 8081

Warum? "Wenn der RN-Packager ausgeführt wird, ist in Ihrem Browser unter 127.0.0.1:8081 ein aktiver Webserver verfügbar. Von diesem Server aus wird das JS-Bundle für Ihre Anwendung bereitgestellt und aktualisiert, wenn Sie Änderungen vornehmen. Ohne den Reverse-Proxy, Ihr Telefon kann keine Verbindung zu dieser Adresse herstellen. "

alle Credits für Swingline

8
Tua Tara

Das hat bei mir funktioniert nachdem ich verschiedene Möglichkeiten ausprobiert habe.

In der Datei node_modules\metro-config\src\defaults\blacklist.js

Ersetzen :

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

mit :

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

hoffe das hilft.

6

Nach Stunden auf der Suche nach einer Antwort. Die Lösung bestand darin, einen Downgrade-Knoten auf Version 12.4 zu erstellen.

In meinem Fall stelle ich fest, dass der Fehler nur in der Version React 0.60 mit der Knotenversion 12.6 auftritt.

5
Victor Araújo

Meine Lösung hierfür lautet wie folgt:

Starten Sie den Metro-Server

$ react-native start

Starten Sie Android

$ react-native run-Android

Wenn Fehler mit der Meldung "Port 8081 wird bereits verwendet" angezeigt werden, können Sie diesen Prozess beenden und erneut ausführen

$ react-native start

Siehe Native Fehlerbehebungsseite reagieren .

4
shizhen

Ab Android 9.0 (API-Level 28)) ist die Klartextunterstützung standardmäßig deaktiviert.

Dies ist, was Sie tun müssen, um dieses Problem zu beseitigen, wenn Sie normale Ausführungsbefehle ordnungsgemäß ausführen

  1. npm installieren
  2. reaktionsnativer Start
  3. react-Native Run-Android

Und ändern Sie Ihre Android Manifest-Datei wie folgt.

<application
    Android:name=".MainApplication"
    Android:icon="@mipmap/ic_launcher"
    Android:usesCleartextTraffic="true" // add this line with TRUE Value.
Android:theme="@style/AppTheme">

Ich hatte die gleichen Probleme, das Problem für mich war, dass adb nicht im richtigen Umgebungspfad war. Der Fehler sagt Ihnen, dass der U-Bahn-Port, während Sie sich in der ADB befinden, Ports getötet und neu gestartet werden .

Umgebungsvariable hinzufügen (ADB)

  1. Umgebungsvariablen öffnen
  2. Wählen Sie aus dem zweiten Frame PATH-Variable und klicken Sie unten auf die Bearbeitungsoption
  3. Klicken Sie auf die Option Hinzufügen
  4. Senden Sie den Pfad der SDK-Plattform-Tools C:\Benutzer\Mein Benutzer\AppData\Local\Android\Sdk\Plattform-Tools

Hinweis: Oder je nachdem, wo sich adb.exe auf Ihrem Computer befindet

  1. Änderungen speichern

Run Android erneut erstellen

$ react-native run-Android

Oder

$ react-native start
$ react-native run-Android
3
CarlosChavarria

Die Lösung, die für mich funktioniert hat, ist die folgende:

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

(My code example

2

Ich habe mich auch diesem Problem gestellt. Ich habe diesen folgenden Schritt gelöst.

Überprüfen Sie Android SDK-Pfad in mgebung verifizierbar.

Hinzufügen Android_HOME = C:\Users\user_name\AppData\Local\Android\Sdk in Systemvariable
und C:\Users\user_name\AppData\Local\Android\Sdk\platform-tools Pfad in Systemvariable

Ersetzen Sie sharedBlacklist wie im folgenden Codesegment,

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

in node_modules/metro-config/src/default/blacklist.js

Führen Sie dann npx react-native run-Android --port 9001 aus

Viel Spaß beim Codieren ..!

2
Chanaka

Versuche Folgendes.

  1. Entfernen Sie die Ordner Android und IOS)
  2. führen Sie den reaktionsnativen Auswurf aus
  3. führen Sie React-Native Run-Android aus

Möglicherweise haben Sie nach den vorherigen Schritten Ausführungen npm start - --reset-cache

Ich arbeite, ich hoffe es hilft dir.

1
LuisO

Ich habe dies nur erlebt, weil mein Wifi auf meinem Emulator fälschlicherweise ausgeschaltet war. Ich habe es wieder eingeschaltet und es hat gut funktioniert. Hoffe, es ist hilfreich für jemanden

1
Forest baba

Für mich begann dieses Problem mit dem Upgrade von React-Native. Das Upgrade war erforderlich, um 64-Bit-Unterstützung hinzuzufügen.

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

Eine wichtige Änderung, die ich für das Upgrade vorgenommen habe, war in ../Android/build/build.gradle

Android {
    ...
    defaultConfig {
        ...
        targetSdkVersion 28
        ...
    }
    ...
}

Ich musste die targetSdkVersion nach der Warnung von 27 auf 28 ändern, als ich versuchte, den Build (.apk) auf die Goole-Play-Konsole hochzuladen. Ich habe kaum bemerkt, dass dies die Hauptursache für den obigen Fehler für mich war. Sofortige Antworten von @tom und @tinmarfrutos machten absolut Sinn.

Ich habe das Problem durch Hinzufügen von Android gelöst: usingCleartextTraffic = "true" zu meiner Android/app/src/debug/AndroidManifest.xml

1
vivekkan

Wenn Sie unter Linux arbeiten, öffnen Sie das Terminal im App-Stammverzeichnis und führen Sie es aus

npm starten

öffnen Sie dann ein anderes Terminalfenster und führen Sie reaktiv-natives Herumlaufen aus

1
solomon njobvu

WICHTIG - Möglicherweise befinden sich in Ihrer Umgebung viele virtuelle Geräte. Stellen Sie sicher, dass Sie die Einstellung erneut wiederholen, wenn Sie die AVD ändern.

DEBUG-INFORMATIONEN-

Wenn bei dem oben genannten Fehler ein Fehler auftritt, müssen Sie zunächst überprüfen, was auf Port 8081 ausgeführt wird

Der schnellste Weg, dies zu finden, ist der folgende Befehl im Terminal

netstat -aon | findstr 8081

wenn das etwas anzeigt, bedeutet dies, dass der Port blockiert ist. Wenn möglich, entsperren Sie diesen Port.

Andernfalls müssten Sie den Port ändern. Der Prozess dazu wurde bereits im obigen Kommentar von Naveen Kumar erwähnt

react-native run-Android --port=9001

Stellen Sie sicher, dass 9001 auch nicht verwendet wird :)

1
TARJU

möglichkeit dieses Fehlers ist auch der falsche Weg, einmal prüfen

 export Android_HOME=/Users/microrentindia/Library/Android/sdk/
 export PATH=$PATH:$Android_HOME/tools:$Android_HOME/platform-tools
1
user3143487

Ich möchte nur eine nicht offensichtliche Möglichkeit hinzufügen, die hier nicht behandelt wird. Ich verwende @ react-native-community/netinfo zum Erkennen von Netzwerkänderungen, hauptsächlich des Netzwerkstatus. Um den Netzwerk-Aus-Status zu testen, muss der WIFI-Schalter (am Emulator) ausgeschaltet sein. Dadurch wird auch die Brücke zwischen dem Emulator und der Debug-Umgebung effektiv abgeschnitten. Ich hatte WIFI nach meinen Tests nicht wieder aktiviert, da ich nicht am Computer war und es sofort vergaß, als ich zurückkam.

Es besteht die Möglichkeit, dass dies auch bei jemand anderem der Fall ist und es sich lohnt, dies zu überprüfen, bevor Sie weitere drastische Schritte unternehmen.

1
arunmenon

Versuchen Sie diese Schritte, wenn Sie alles versucht haben, was in den obigen Lösungen erwähnt wurde:

  1. Erstellen Sie eine Datei in Android/app/src/main/assets
  2. Führen Sie den folgenden Befehl aus:

react-Native-Bundle --platform Android --dev false --Eintragsdatei index.js --Bundle-Ausgabe Android/app/src/main/assets/index.Android.bundle - -assets-dest Android/app/src/main/res

  1. Führen Sie nun Ihren Befehl aus, um z. React-Native Run-Android
0
Prayag

sie können auch den Knoten js auf eine Version unter 12 herabstufen, das Knotenmodul entfernen und dann die npm-Installation erneut ausführen

0

Ich habe: React-Native Start und Npx React-Native Run-Android.

Für Min19 (Ubuntu-basiert) hatte ich jedoch das gleiche Problem, bis ich es ausführte:

echo fs.inotify.max_user_watches=582222 | Sudo tee -a /etc/sysctl.conf && Sudo sysctl -p

Von: https://reactnative.dev/docs/troubleshooting#content

Zumindest habe ich die App in meinem Handy zum Laufen gebracht.

0

Die Fehlermeldung auf dem Emulator ist irreführend. In meinem Fall habe ich ein Macbook verwendet. Ich musste die Berechtigungen für Android/gradlew ändern, indem ich $ chmod 755 ./gradlew Ausführte, und dann konnte die App erstellt und auf dem Android Emulator) bereitgestellt werden.

0
Jane

Wenn Sie unter Linux arbeiten, kann es vorkommen, dass Ihr npm-Remoteserver nicht ausgeführt wird. Öffnen Sie ein anderes Terminal (mit Projektverzeichnis) und führen Sie diesen Befehl aus Sudo npm start oder Sudo react-native start bevor Sie Sudo react-native run-Android ausführen =

0
vicky keshri

In meinem Fall habe ich in meinem Emulator einen Proxy eingerichtet. Es funktioniert wieder normal, nachdem ich diesen Proxy entfernt habe.

0
Benson

In einigen Fällen möchten Sie möglicherweise den Port von React-native Bundler schließen und die App mit demselben Vorgang erneut ausführen

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

2.npm start inside the project

3. react-native run-Android
0
Varun Pradhan

Was für mich funktioniert hat war :

  1. schließen Sie alle Konsolen
  2. öffnen Sie eine neue Konsole
  3. $ adb devices
  4. stellen Sie sicher, dass nur ein Gerät angeschlossen ist
  5. $ react-native run-Android
0
dcx86

aktualisieren Sie diesen Teil in der Metro Blacklist

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