2015-12-28 16 views
37

Wenn ich nur den Standardcode von react-native init AwesomeProject verwende, bekomme ich beim Ausführen der App den 'ReferenceError: Can not find Variable: __fbBatchedBridge (Zeile 1 im generierten Bundle)'.ReferenceError: Variable kann nicht gefunden werden: __fbBatchedBridge

Und wenn ich 'JS' neu lade, hat die App nur den weißen Hintergrund und keine 'Hallo Welt' Ansichten. Ich habe nichts vom Code von der Init berührt.

Irgendwelche Ideen, wie man den Fehler auflöst?

Screenshot (klicken Sie in voller Größe zu sehen):
enter image description here

Verwendung:

  • Ubuntu 15.10, 64-Bit-
  • Node.js v5.3.0
  • reaktive-native v0 .1.7
  • Nexus 5X, API 6.0.1

Antwort

33

Ich sehe das im Allgemeinen, wenn der Verpacker nicht gestartet hat. Stellen Sie sicher, dass reactive-native Start ausgeführt wird

+0

Leider bekomme ich immer noch den gleichen ReferenceError. – Anonsage

+10

Drücken Sie die Zurück-Taste, klicken Sie auf Menü, wählen Sie Dev-Einstellungen. Wählen Sie die untere Option (etwas über dev-Server) Geben Sie Ihre Computer-IP mit Port 8081 (zB 192.168.1.30:8081) dann drücken Sie OK, dann zurück und dann drücken Sie die Schaltfläche erneut laden – rmevans9

+1

Works! Vielen Dank! Ich bin froh, dass die App geschüttelt hat, um dieses Menü zu öffnen, und "ifconfig" hat funktioniert, um die IPv4-Adresse zu erhalten. Und die Fehlerseite mit dem Reload-Button verschwand nach dem Aufruf des Menüs, so dass ein anderer "reactive-native run-android" zum Nachladen arbeitete. – Anonsage

12

Ich hatte das gleiche Problem bei der Verwendung von Visual Studio Android Emulator. Dies löst den Shake-Ereignis, wenn der rote Bildschirm

adb shell input keyevent 82 

Typ in der Befehlszeile erscheint, und starten Sie das Entwickler-Menü

Developer menu

Dann traf Dev Einstellungen> Debug-Server-Host & Port für Geräte und geben Sie <your ip adress>:8081 ein. Wenn aus irgendeinem Grund können Sie nicht das Feld eingeben können Sie den Text Aktion in der Kommandozeile auslösen, indem

mit
adb shell input text <your ip adress>:8081 
1

ich dies auf, wenn ich anders angegeben hatte reagieren native Versionen in meinem packages.json und meine build.gradle Datei. Stellen Sie sicher, dass sie übereinstimmten, npm update ausführen und von android studio neu aufbauen, um das Problem für mich zu beheben.

5

i löste es mit diesem Befehl

adb reverse tcp:8081 tcp:8081 
+0

Ich bin immer noch nicht sicher, warum, aber das hat für mich funktioniert ... –

3

Danke rmevans9 und Anonsage für Ihre Antworten!

ich HTC One auf Ubuntu bin mit und es gibt keine Menüoption, trotzdem ist dies die Zusammenfassung der Antworten, die für mich gearbeitet:

  1. Erstellen Sie das Projekt $ react-native init MyProject $ cd MyProject/

  2. In ersten Konsole Tab laufen und lassen Sie ihn laufen, wie Sie (react-native start Alternative) entwickeln: $ npm start

  3. Auf dem zweiten Konsole Registerkarte kompilieren und das Projekt (schließen Sie das Gerät an den USB-wenn Sie möchten) installieren: $ react-native run-android

  4. Fix ReferenceError: Can't find variable: __fbBatchedBridge:

    • Finden Sie lokale IP-Adresse von ifconfig auf Linux/Mac ausgeführt wird, zum Beispiel: inet addr:192.168.0.3
    • schütteln Sie das Gerät Menüoptionen während App ausgeführt wird, um zu sehen (wenn Sie nicht über „Menü“ -Taste haben)
    • zum Dev Settings ->Debug server host & port for device in Debugging Abschnitt und kopieren Sie Ihre lokale IP-Adresse mit dem spezifisch Port: 192.168.0.3:8081 (die Port, wenn npm start von der ersten Tab aufgerufen wird angezeigt werden kann) dann das Gerät gehen/press Back
    • schütteln Menüoptionen erneut ein und drücken, um zu sehen Enable Live Reload (um zu sehen, Änderungen leben bei der Bearbeitung)
    • schütteln Sie das Gerät Menüoptionen erneut und drücken Sie Reload JS
1

ich hatte das gleiche Problem zu sehen.

Als ich alle Schritte in anderen Antworten folgte, konnte ich das Problem nicht lösen.

In meinem Fall blockierte die firewall die Pakete von Android.

+0

Gleiches hier danke! – vanna

0

Auch Wenn Sie Ihre App für den iTunes Store Erklärungen abgegeben haben, auch sicherstellen, dass Ihre jsCodeLocation auf den lokalen Host ist zurück, wie unten gezeigt:

jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"]; 

    /** 
    * OPTION 2 
    * Load from pre-bundled file on disk. The static bundle is automatically 
    * generated by "Bundle React Native code and images" build step. 
    */ 

    //jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; 
2

Dieser arbeitete für mich nach Dokumentation

http://facebook.github.io/react-native/docs/running-on-device-android.html#content

Verwendung von adb reverse Beachten Sie, dass diese Option auf Geräten mit Android 5.0+ (API 21) verfügbar ist.

Lassen Sie Ihr Gerät über USB mit aktiviertem Debugging verbunden sein (siehe Absatz oben, um das USB-Debugging auf Ihrem Gerät zu aktivieren).

  1. Run adb Reverse-tcp: 8081 tcp: 8081

Sie Reload JS und andere Entwicklungsmöglichkeiten ohne zusätzliche Konfiguration

  1. Dann können Führen Sie reactive-native run-android aus, die den dev-Server automatisch auf dem 8081-Port Ihres Dev-Computers startet, wenn er nicht bereits läuft.
Verwandte Themen