Emulator-5554に問題がありますが、オフラインであると表示され続けます。
コマンドラインからadb devices
を実行すると、
emulator-5554 offline
新たに再起動した後でも、そのコマンドを試しても、まだオフラインであると表示されます。
問題は、コマンドプロンプトからabd install <path>
を使用してエミュレータに.apkファイルをインストールしようとすると、別のデバイスを作成して実行すると.apkファイルをインストールしようとすると、オフラインであることを教えてくれます接続しているデバイスが多すぎます。つまり、.apkファイルをインストールできません。
エミュレーター-5554をどうやって取り除くことができますか?再起動すると、すべてのデバイスがクリアされるはずですが、それは機能していないようです。コンピューターの起動時に初期化されているようです。誰もこの問題に遭遇しましたか?
ありがとう
このような場合、エミュレータが再び動作を開始することを保証するために、次のすべてを実行できます。
adb kill-server
と入力しますadb
を見つけます。見つかったら、それを右クリックし、プロセスツリーの終了をクリックします。それでおしまい!しばらく時間がかかり、問題が解決するはずです。
Androidがエミュレーターを検出する方法は、ポート5555から始まるポートをスキャンすることです。
adb devices
リストに表示される番号(あなたの場合は5554)は、adbが開いているポートよりも1つ少なくなります。
ポート5555でリッスンしているプロセスが実行されている可能性があります。「オフライン」デバイスを取り除くには、そのアプリケーションを見つけて閉じるか、別のポートをリッスンするように再構成する必要があります。
( @ Chris Knightのソリューション forMac/Linuxを参照)
Windows Powershellを起動します。
スタート->「powershell」と入力-> Enterキーを押します
次のコマンドを実行します:adb devices
PS C:\Users\CJBS>adb devices
List of devices attached
emulator-5656 Host
emulator-5652 Host
12b80FF443 device
この場合、12b80FF443は私の物理デバイスであり、エミュレーター*エントリーはゴミです。
@ Brigham 、「Androidがエミュレータを検出する方法は、ポート5555から始まるポートをスキャンすることです。」ポート番号は、エミュレーター名の後に示されます(この場合は5656および5652)。チェックするポート番号は、エミュレータのポート番号に1を加えたものです。したがって、この場合:
5656 + 1 = 5657
5652 + 1 = 5653
これらのポートを使用しているプログラムを見てみましょう。この場合、チェックするポートは両方とも「565」で始まります。そこで、565から始まる使用中のポートを検索します。実行:netstat -a -n -o | Select-String ":565"
PS C:\Users\CJBS> netstat -a -n -o | Select-String ":565"
TCP 127.0.0.1:5653 127.0.0.1:5653 ESTABLISHED 5944
TCP 127.0.0.1:5657 127.0.0.1:5657 ESTABLISHED 5944
tasklist /v | Select-String 5944
。 5944を前のコマンドの出力に置き換えます。PS C:\Users\CJBS> tasklist /v | Select-String 5944
adb.exe 5944 Console 1 6,800 K Running MyPCName\CJBS 0:06:03 ADB Power Notification Window
驚いた。それはADBです。他の回答で指摘されているように、他のプログラムでもある可能性があります。
kill 5944
を実行し、5944を前のコマンドのPIDに置き換えます。PS C:\Users\CJBS> kill 5944
PS C:\Users\CJBS>adb devices
List of devices attached
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
12b80FF443 device
ADBが再起動し(以前に強制終了されていたため)、偽のエミュレーターは検出されません。
LinuxまたはMacを使用していて、オフラインデバイスが「emulator-5554」であると仮定すると、次を実行できます。
netstat -tulpn|grep 5554
次の出力が生成されます。
tcp 0 0 127.0.0.1:5554 0.0.0.0:* LISTEN 4848/emulator64-x86
tcp 0 0 127.0.0.1:5555 0.0.0.0:* LISTEN 4848/emulator64-x86
これにより、プロセスID 4848(おそらく異なる)がポート5554でリッスンしていることがわかります。このプロセスを次のように強制終了できます。
Sudo kill -9 4848
ゴーストオフラインデバイスはもうありません!
私の場合、adbがうまく機能しないプロセスが見つかりました。
奇妙なプロセスを強制終了し、「adbデバイス」を実行してテストすることができます。
それは私のために働いた:
プロセス名MONyog.exeを強制終了します
私はコマンドプロンプトを開いてこれを解決しました:
adb kill-server
adbデバイス
起動後、ADBはデバイス/エミュレーターを検出します。
私も同じ問題を抱えていました。ここで説明したすべてのソリューションを試しましたが、助けにはなりませんでした。次に、Android Virtual Device Managerのすべてのエミュレーターを削除し、新しいエミュレーターを作成しました。問題はCPU/ABIAndroid Virtual Device Managerのシステムイメージ設定にありました。システムイメージx86
を使用するWindows10マシンエミュレーターでは、システムイメージx86_64
を使用するエミュレーターが正常に機能している場合、常にオフラインです。これに注意してください
AVD Managerから、ドロップダウンの[Cold Boot Now]オプションを試してください。それは私のために働いた!
私はついにこの問題を解決しました。開発者オプションから設定にEmulator、少し下にスクロールして、USBデバッグをオンにしました。すぐにデバイスがオンラインで認識され、その問題に直面しなくなりました。私はAndroidスタジオとエミュレーターを再起動し、adbプロセスが、それらは動作しませんでした。
アクションドロップダウンのAVDマネージャーリストから:今すぐコールドブート
上記のすべての痛みなしに再起動します。
エミュレーターへのUSBデバッグを有効にする
それは楽しみです
書くだけ
adb -e reboot
そして、adbに満足してください))
「ユーザーデータのワイプ」オプションがついに私の問題を解決しました。エミュレータを起動するたびにユーザーデータを消去するだけです。これは私にとって常に機能します!私はWindows 8 x64、Eclipseを使用しています
私の場合、「今すぐコールドブート」で開始し、[メッセージ]をクリックして接続を許可しました。
Windowsタスクマネージャーに移動し、プロセス「adb.exe」を終了します。同じプロセスのインスタンスが複数存在する可能性があるため、必ずすべてを終了してください。
「Xamarin」、「Android」、「adb」、「Google」、「AVD」、またはあらゆる種類のエミュレーターを使用して、私の人生の残りの部分で何もすることがないように解決することで問題を解決しましたテストされていないバグに乗った排泄物の蒸し山
Bluestacksがインストールされていますか?実行すると、実行されるバックグラウンドプロセスにより、オフラインデバイス「emulator-5554」が作成されます。
タスクマネージャーに移動し、「Bluestacks」の説明ですべてのプロセスを終了します
私の場合、エミュレーターはOreo以下で動作していましたが、Pieでは動作していませんでした。最終的に機能したのは、エミュレーターを最新(バージョン28)に更新することでした。
使用しているadbリビジョンが最近ではない場合、エミュレーション環境が「オフライン」として表示されることがわかりました。パスを適切に更新(および古いadbバージョンを削除)し、「adb kill-server」、「adb devices」で、エミュレーション環境が「オフライン」として表示されなくなりました。
その時点ですぐに「adb Shell」を使用できました。
エミュレーターが既に開いているか実行されている場合は、オフラインであることを通知します。コマンドライン(Ubuntu)を再確認して実行できます:
adb devices
エミュレーターをオフラインで表示し、実行中のエミュレーターのインスタンスを閉じて(ポートがビジーとして表示されるため)、その後、アプリケーションを実行する必要があります。これが誰かを助けることを願っています。
AVDを削除して再作成しましたか?ユーザーの/.Android/avdサブディレクトリにあるディレクトリに移動して、AVDファイルを手動で削除できます。
仮想デバイスでも同じ問題が発生しました。この問題は、Playストアが統合された仮想デバイスのOreoイメージが原因です。この問題を解決するために、Play Storeを統合せずに新しいデバイスをインストールしましたが、すべて問題ありませんでした。
お役に立てば、さようなら
ADB統合の有効化がマークされていることを確認してください。 [ツール]> [Android]> [ADB統合を有効にする]に移動します。
チェックされていない場合、このオプションをチェックし、仮想デバイスを閉じてから再度開きます。これは私のために働いた..幸運!!
エミュレータを開き、
設定->エミュレートされたデバイスについて->ビルド番号を繰り返しクリックします->開発者向けオプションを開きます-> USB debugginを開きます
私はすべてを試しましたが、私の場合はこれだけが機能します:SDKマネージャーを使用して、システムイメージを再インストールします。 Android Studio、[構成]、[SDKマネージャー]、[スタンドアロンSDKマネージャーの起動]の順にクリックし、[Google API Intel x86 *システムイメージ]、[Intel x86 Atom *システムイメージ]をすべてチェックしてインストールします。その後、Android studioを再起動します。
AVD Managerで仮想デバイスを再構成して消去する必要がある場合があります。x86バージョンを選択してください。
これを試して ...
実行中のエミュレータを閉じます。
エミュレータを再度起動し、オンラインになるのを待ちます。
commandpromptにコマンドを入力してEnterキーを押します:adb tcpip 5555
(一度に1つのエミュレータのみが実行されていることを確認してください。)
adb -s emulator-5555 emu kill
Enterキーを押します。
できた.
コマンドの「adb devices」コマンドでデバイスを確認します。
ここで別の可能な解決策を追加します。これは私の場合でうまくいきました。
SpiceWorksEventProcessorと呼ばれるプロセスが実行されており、ポート5555を使用しており、adbによってエミュレーターとして読み取られているようです。そのプロセスを殺すことが、ついにその頑固なエミュレーターデバイスを私のために取り除いたのです。
これが何であるかはわかりませんが、もしそれがあれば、それがオフラインエミュレータの原因かもしれません。
乾杯
私の場合、「GPU Host」のチェックを外し、動作しました:)
MACでは、アクティビティモニターユーティリティを使用できます。Linuxとは異なり、MACではnetstat -tulpnコマンドを使用できないためです。エミュレータの実行中のインスタンスを検索します。通常はqemu-system-i386です。そのインスタンスを強制終了すると、ゴーストエミュレーターが実行されていないことがわかります。
アクティビティモニターユーティリティを取得する最も簡単な方法は、スポットライト検索を使用することです。 cmd-spaceを押してActivity Monitorと入力するだけです。
ギアavdを再度削除して作成するだけで機能します。
私の場合、原因は、Android-x86を使用してVMを再開したことです。 Android-x86でVMを再起動し、adbサーバーを再起動すると、問題が修正されました。
adbデバイスの未承認のエミュレーター5554 を参照してください。 API 29エミュレーターでadb devices
コマンドを実行し、emulator-5554 unauthorized
メッセージを受け取りました。次に、Google APIs
からではなく、Google Play
イメージ(私の場合はQ、x86)から新しいavd
デバイスを作成しました。
これは、マシンに別の仮想デバイスがインストールされているためです。 Bluestacksかもしれませんが、私も同様の問題に直面していました。 Bluestacksをアンインストールし、adb devices
を確認しました。
上記のすべての答えが役に立たなかったので、エミュレータを削除して再作成し、すべて正常に動作しました
AVDマネージャーからユーザーデータを消去し、adb kill-serverおよびadbデバイスを入力するだけです。データを消去すると、システムのメモリスペースも大幅に節約されます。