React NativeERRORパッケージャーはポート8081でリッスンできません


84

コマンドを実行するとreact-native start、が表示されますPackager can't listen on port 8081

問題は、ポート8081を使用するソフトウェアに関するものです。

リソースモニターを使用してポートを確認しましたが、8081が見つかりません。8081がありません。

誰かがそれを見つける方法を教えてもらえますか?

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


1
この投稿を見てください、あなたはそれを見つけるはずです。
Antoine Grandchamp 2017

他の答えに加えて、Metroバンドラーがどこかで長い間忘れられていたターミナルウィンドウでまだ実行されていないことを確認してください。
ルリファクセル2018年

回答:


108

パッケージャは別のポートで実行できます。

$ react-native start --port=8088

または、netstatを使用してWindowsのどのポートを使用しているかを調べます。

$ netstat -a -b -o

Netstatは、プロセスを強制終了するために使用できるPIDを提供します。

$ taskkill /pid 1234

146

Macでは、次のコマンドを8081
sudo lsof -i :8081
実行して、ポートを使用しているプロセスのIDを見つけます。次に、次のコマンドを実行して、プロセスを終了します。
kill -9 23583

これがどのように見えるかです ここに画像の説明を入力してください


4
ubuntu 18.04でも動作します
theapache64 2018

1
MacOS High Sierra
LiranH18年

1
ナイスナイスナイスナイスとてもナイス、ありがとう。
Jeaf Gilbert

31

このエラーは、一部のプロセスがすでに8081ポートで実行されているために発生します。そのプロセスを停止してからコマンドを実行すると、コードが実行されます。この最初のリストでは、次のように入力して、このポートを使用しているすべてのプロセスをリストします。

lsof -i :8081  

このコマンドは、プロセスのプロセスID(PID)を一覧表示し、を使用してノードプロセスを強制終了します。

kill -9 <PID>  

ここで、PIDはノードプロセスのプロセスIDです。


19

その写真は確かにあなたの8081が使用されていないことを示しています。上記の提案が役に立たず、モバイルデバイスがUSB経由でコンピューターに接続されている場合(およびAndroid 5.0(Lollipop)以降を使用している場合)、次のことを試すことができます。

$ adb reconnect

これはほとんどの場合必要ありませんが、念のため、モバイルとの接続をリセットして、adbサーバーを再起動しましょう。最後に:

$ adb reverse tcp:8081 tcp:8081

したがって、モバイルデバイスがそれ自体のポート8081にアクセスしようとすると、PCの8081ポートにルーティングされます。

または、試すことができます

$ killall node

9

Ubuntu / Unix && MacOS

Metro Bundlerがスタックし、多くのノードプロセスが実行されていましたが、react-native以外の開発は行われていなかったため、次のように実行しました。

$ killall -9 node

Metro Bundlerは、デフォルトでポート8081のノードを介して実行されており、スタックする問題が発生する場合があります(通常、ホットリロードをオンにしてCTRL+Sをすばやく続けて押すことが原因です)。CTRL+Cを押してreact-native run-androidプロセスを強制終了するreact-native-run-androidと、スタックするため、突然悪い時間が発生します。

Scanning folders for symlinks in /home/poop/dev/some-app/node_modules (41ms)

修正:

$ killall -9 node

$ react-native run-android

注:その時点で他のアプリを開発している場合、すべてのノードプロセスを強制終了すると、それらのアプリまたは実行中のノードベースのサービスが中断される可能性があるため、の抜本的な性質に注意してくださいkillall -9。ノードベースのデータベースまたはアプリを実行していない場合、または手動で再起動してもかまわない場合は、問題ありません。

私がこの半無関係の質問にこの詳細な答えを残す理由は、私のものが一般的な半関連の問題の解決策であり、悲しいことに修正するのに2つのステップが必要ですが、幸いにも2つのステップで仕事に戻ることができるからです。

ポート8081のMetroBundlerのゴミを外科的に正確に除去したい場合は、次の回答の手順を実行してください。 MetroBundler RC_02

$ sudo lsof -i :8081

$ kill -9 23583

(23583はプロセスIDです)


6

ターミナルを取り、タイプします

fuser 8081/tcp

ポート8081を使用しているプロセスIDを取得します。プロセスを強制終了します。

kill <pid>

3

ポート8081で実行されているすべてのプロセスを強制終了する必要があります kill -9 $(lsof -i:8081)


2

マシンで実行されているノードサーバーがすでに存在するかどうかを確認してから、それを閉じます。


2

3131などの別のポートで実行してみてください。次のコマンドを実行します。

react-native run-android --port=3131

私の場合、マカフィーはこのポートを使用しています。前述のように、別のポートで実行すると役立ちます。
Muthu

1

これは、McAfeeがそのポートを使用していることが原因である可能性があります。単純にlsof -i 8081実行すると、アプリケーションが表示されない場合があり、sudoを実行する必要がある場合があります。

やるsudo lsof -i 8081と、このコマンドは、出力を与える場合は、使用してそれを殺すことができます sudo launchctl remove com.mcafee.agent.macmn。この後、パッケージャーを再度起動します。


1

私の場合、エミュレーターにWi-Fi信号がないため、エミュレーターのインターネットがダウンしています。エミュレータのリセットが機能しました。


0

この問題を修正するために、私が以下に述べたプロセス。

CTRL + CまたはCMD + Cで「react-nativerun-android」の現在のプロセスをキャンセルしてください

自動的に開いたメトロバンドラー(ターミナル)ウィンドウのコマンドラインを閉じます。

ターミナルでコマンド「react-nativerun-android


0

まず、デバイスでDevに移動しますオプション-> ADB over Network を実行した後:

$ adb connect <your device adb network>
$ react-native run-android 

(または、ちなみに、run-ios)

これで正常にデバイスにapp-debug.apkがインストールされた場合は、app-debugを開いてDevに移動します。設定->デバイスのサーバーホストとポートをデバッグし、以下の例のように、マシンのIPアドレス(通常はシステム設定->ネットワーク)を入力します<マシンのIPアドレス> :8081(不等式なし)

最後に、以下のコマンドを実行します

$ react-native start --port=8081

別のポートを試して、マシンとデバイスが同じネットワークであることを確認してください。

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