web-dev-qa-db-ja.com

ReferenceError:変数が見つかりません:__fbBatchedBridge

react-native init AwesomeProjectのデフォルトコードのみを使用すると、アプリを実行すると、「ReferenceError:変数が見つかりません:__fbBatchedBridge(生成されたバンドルの行1)」が表示されます。

そして、「JSをリロード」すると、アプリは「hello world」ビューではなく、白い背景になります。 initのコードには触れていません。

エラーを解決する方法はありますか?

スクリーンショット(クリックしてフルサイズを表示):
enter image description here

を使用して:

  • Ubuntu 15.10、64ビット
  • Node.js v5.3.0
  • 反応型ネイティブv0.1.7
  • Nexus 5X、API 6.0.1
37
Anonsage

通常、パッケージャーが起動していないときに表示されます。 react-native startを実行して、実行されていることを確認します

33
rmevans9

Visual Studioの使用中に同じ問題が発生しましたAndroid Emulator。コマンドラインに赤い画面が表示されたら

adb Shell input keyevent 82

これはシェイクイベントをトリガーし、開発メニューを起動します

Developer menu

次に、[Dev設定]> [デバイスのサーバーホストとポートのデバッグ]を選択し、<your ip adress>:8081。何らかの理由でフィールドに入力できない場合は、次を使用してコマンドラインでテキストアクションをトリガーできます

adb Shell input text <your ip adress>:8081
12
vanna

このコマンドを使用して解決しました

adb reverse tcp:8081 tcp:8081
5
John

Rmevans9とAnonsageの回答に感謝します!

私はUbuntuでHTC Oneを使用していますが、メニューオプションはありません。とにかく、これは私のために働いた答えの要約です:

  1. プロジェクトを作成する$ react-native init MyProject $ cd MyProject/

  2. 最初のコンソールタブで実行し、開発中に実行したままにします(react-native start代替):$ npm start

  3. 2番目のコンソールタブでプロジェクトをコンパイルしてインストールします(必要に応じてデバイスをUSBに接続します):$ react-native run-Android

  4. ReferenceError: Can't find variable: __fbBatchedBridgeを修正:

    • Linux/Macでifconfigを実行して、ローカルIPアドレスを見つけます。例:inet addr:192.168.0.3
    • アプリの実行中にデバイスを振ってメニューオプションを表示します(「メニュー」ボタンがない場合)
    • Dev Settings-> DebuggingセクションのDebug server Host & port for deviceに移動し、特定のポートを使用してローカルIPアドレスをコピーします:192.168.0.3:8081(最初のタブからnpm startを実行するとポートを表示できます)その後、Backを押します
    • デバイスを振ってメニューオプションを再度表示し、Enable Live Reloadを押します(編集中に変更をライブで表示するには)
    • デバイスを振ってメニューオプションをもう一度表示し、Reload JSを押します
3
Danail

ドキュメントによるとこれは私のために働いた

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

Adbリバースの使用このオプションは、Android 5.0+(API 21)を実行しているデバイスで使用できることに注意してください。

デバイスをUSB経由で接続し、デバッグを有効にします(デバイスでUSBデバッグを有効にする方法については、上記の段落を参照してください)。

  1. 実行adb reverse tcp:8081 tcp:8081

Reload JSおよびその他の開発オプションを追加の構成なしで使用できます

  1. 次に、react-native run-Androidを実行します。これにより、devマシンの8081ポートでdevサーバーがまだ実行されていない場合は自動的に開始されます。
2

これは、packages.json と私 build.gradleファイル。それらが一致することを確認し、npm updateを実行し、Android studioから再構築することで問題が修正されました。

1
Saltymule

同じ問題がありました。

他の回答に記載されているすべての手順を実行したため、問題を解決できませんでした。

私の場合、firewallはAndroidからのパケットをブロックしていました。

1

また、iTunesストアにアプリを送信した場合は、以下に示すように、jsCodeLocationがローカルホストに戻っていることも確認してください。

  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"];
0
rat