リモートデバッガーに接続できません


149

React.JSを使用react-native run-androidしていますが、(デバイスを接続した状態で)使用すると、空白のページが表示されます。デバイスをシェイクDebug JS Remotelyしてオプションリストから選択すると、次の画面が表示されます。

ここに画像の説明を入力してください

ご参考までに:

OS: Ubuntu 16.04
Node version is: v4.6.2
java version "1.8.0_111"
react": "15.4.1
react-native": "0.38.0

1
Android react-native startでは、サーバーを起動するために別のウィンドウで実行する必要があります。
Aleksandar Popovic 2016

これを変更するのはどうですか:compile "com.facebook.react:react-native:+"コンパイルセクションで。
Satan Pandeya 2016

開発

回答:


280

私の場合、問題はエミュレータが次の要求を行っていることでした。

http://10.0.2.2:8081/debugger-ui

の代わりに:

http://localhost:8081/debugger-ui リクエストは失敗しました。

問題を解決するには:エミュレータリモートデバッグを有効にする前に、Chromeで開きますhttp://localhost:8081/debugger-ui。次に、リモートデバッグを有効にして、コンソールのログが表示されるはずのChromeページに戻ります。


1
私のために働いた-thx!最初にクロームタブを開かなくても済むように常にローカルホストに接続しようとするように設定する方法を見つけましたか?
izikandrw 2018年

26
エミュレータのDev Settings(Ctrl + M)に移動して、デバッグサーバーを「localhost:8081」に変更できます。
DannyMoshe 2018年

最後の段落は私のために働いた唯一のものです。
ペドロ・オテロ

3
ありがとうございました。そもそもどうやって10.0.2.2に設定するのですか?
チャーリー

3
エミュレーターからの「localhost」への要求は、PCではなくエミュレーターのループバックポートにアクセスしようとします(PCのループバックが必要です)。これを解決するために、androidはエイリアス10.0.2.2を作成して、PCで実行されているサービスにアクセスできるようにします(ドキュメントの参照については、developer.android.com / studio / run / emulator-networkingを参照てください)。リクエストが失敗する理由は確かではありませんが、react / androidの文書化された問題のようです。github.com / facebook / react-native / issues / 17970を参照してください。
DannyMoshe

181

次の問題を解決しました:

  • Cmd + Mエミュレータ画面で押す
  • に行く Dev settings > Debug server host & port for device
  • セットする localhost:8081
  • Androidアプリを再実行します。 react-native run-android

デバッガが接続されました!


CMD + Mボタンが機能しない問題を抱えている方のために、adbが配置されているシェルで「./adb shell input keyevent 82」を使用してトリガーしました。その後、ショートカットキーが機能し始めました!
ジェフL

YOU先生血まみれの伝説です。x
NewbieAid 2018

さて、リモートデバッガーに接続しようとしています...永遠に
Fakebounce

44

私はそれをやってadb reverse tcp:8081 tcp:8081、それからreload私の電話でそれを解決しました。


36

私の場合、[ JSデバッグ]を選択するとリモートで Chromeが起動しましたが、Androidデバイスと接続しませんでした。通常、新しいChromeタブ/ウィンドウでは、アドレスバーにデバッグURLが事前に入力されていますが、この場合、アドレスバーは空白でした。タイムアウト期間後、「リモートデバッガーに接続できません」というエラーメッセージが表示されました。私は次の手順でこれを修正しました:

  • 走る adb reverse tcp:8081 tcp:8081
  • http://localhost:8081/debugger-uiChromeブラウザのアドレスフィールドに貼り付けます。通常のデバッグ画面が表示されますが、アプリはまだ接続されていません。

これで問題が解決します。そうでない場合は、次の追加手順を実行する必要があります。

  • Androidデバイスからアプリを閉じてアンインストールします
  • アプリを再インストール react-native run-android
  • アプリでリモートデバッグを有効にします。
  • これで、アプリがデバッガーに接続されます。

2
トム...ありがとう!この前に、IPアドレスを設定しました( "Dev Settings"-> "Debug server host for device")xxxx:8081
atreeon

11

私はこの質問に私を導いた同様の問題がありました。私のブラウザーデバッガーでは、次のエラーメッセージが表示されました。

' http:// localhost:8081 / index.delta?platform = android&dev = true&minify = false 'からのフェッチへのアクセスは、オリジン ' http://127.0.0.1:8081 ' からCORSポリシーによってブロックされています:いいえ 'Access-Control -Allow-Origin 'ヘッダーがリクエストされたリソースに存在します。不透明な応答でニーズが満たされる場合は、リクエストのモードを「no-cors」に設定して、CORSを無効にしてリソースをフェッチします。

デバッガーの127.0.0.1:8081代わりにlocalhost:8081を使用していることに気づくのにしばらく時間がかかりました。

それを修正するには、Chromeを次のように変更するだけです。

http://127.0.0.1:8081/debugger-ui/

http://localhost:8081/debugger-ui/

1
実際私にとっては反対でした。しかし実際には、「localhost」は通常127.0.0.1と同等です。localhostとしてアドレスに何が設定されているかによって異なります。常に明示的にする方が良い
カーマインタンバスシア

2

バンドルを提供するノードサーバーがバックグラウンドで実行されていることを確認してください。サーバーを起動して起動するには、npm startまたはreact-native start開発中にタブを開いたままにします


1
それでも動作しません。どちらの端末もエラーを返さない
2016

1
チャールズのようなプロキシサーバーまたはプロキシソフトウェアを実行していますか...あれば停止します
Chethan N

いいえ、私はプロキシを実行していません
2016

2

私の場合、タップしてリモートJSデバッグを有効にすると、Chromeが起動しますが、接続できません。

私は走ろうとしました:

adb reverse tcp:8081 tcp:8081 

、動作しませんでした。

クロムを完全にアンインストールして、新しいクロムをインストールしました。そしてそれは機能します。


1
  1. 1つのタブのreact-native start --reset-cache別のタブのreact-native run-android
  2. adb reverse tcp:8081 tcp:8081(これをスクリプトに追加して、yarn run adb-reverseを実行するだけです)
  3. Androidを使用している場合は、スマートフォンを振るのではなく、adbコマンドを実行してください。

だからあなたは走ることができます:

  • adb shell input keyevent 82メニューオプション
  • adb shell input keyevent 46 46reload

1

ここでの他の回答には、私にとって重要な1つのステップが欠けていました。AndroidManifest.xmlで、usesCleartextTrafficを追加する必要がありました。

    <application
      ...
      android:usesCleartextTraffic="true">

安全でないhttpリクエストをサポートしたい場合を除いて、アプリの本番リリースではこれを維持したくないでしょう。

これをAndroidManifest.xmlに追加した後、Tom Arandaの回答に従い、エミュレーターは最終的にデバッガーに接続できました。


0

私は@sajibの答えを出し、このスクリプトを使用してポートをリダイレクトしました:

#!/usr/bin/env bash

# packager
adb reverse tcp:8081 tcp:8081
adb -d reverse tcp:8081 tcp:8081
adb -e reverse tcp:8081 tcp:8081

echo "🚧 React Native Packager Redirected 🚧"

0

アプリケーションをアンインストールして、react-native run-androidを実行します。次に、Chromeでデバッグの終了をクリックしてhttp:// localhost:8081 / debugger-ui /を置き換え、react-native run-androidを終了します。それでも成功しない場合は、もう一度お試しください


0

エキスパート開発者が特別にRibamar Santos提供したすべての印象的な答えを取り入れて、機能しない場合は、よりトリッキーなことを確認する必要があります。

Airplane modeあなたの(エミュレートされた)電話のようなもの!または、ネットワークを表現しないように操作される可能性のあるnetwork status of EmulatorData status and Voice status on Cellular tab of Emulator configuration)!いくつかのエミュレーションのニーズに!

このトリックでこの問題を克服しました!この穴を見つけるのは少し息をのむようなデバッグでした!



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.