このソリューションはWindows用です。
(@Chris KnightのMac / 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は私の物理デバイスであり、emulator- *エントリはガベージです。
@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
- この出力の最後のフィールドはPID(プロセスID)です。この場合、これらの2つのポートの両方のPID 5944です。では、このプロセスIDを見てみましょう。実行:
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です。他の回答で述べたように、それは他のプログラムである可能性もあります。
- ここで、このプロセスIDを強制終了します。を実行し
kill 5944
、5944を前のコマンドのPIDに置き換えます。
PS C:\Users\CJBS> kill 5944
- スプリアスエミュレーターがなくなったことを確認するには、次のコマンドを再実行します。adb devices
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が再起動し(以前は強制終了されていたため)、偽のエミュレーターは検出されません。
adb devices
エミュレータの名前を取得します。4.次を実行してAPKをインストールしてみadb -s NAME_OF_DEVICE install file.apk
ます。5 .何が起こるかを教えてください。