検索

デバイス

BlueStacks の adb が接続できない: エミュレータ ADB の対処法

BlueStacks、LDPlayer、MuMu、MEmu、Nox で adb が接続できない、device not found、offline になるエラーを、自分で試せる adb コマンド付きで解決します。

  • Windows
  • Mac
  • エミュレータ
  • スマホ
  • Studio
中級 更新日 約11分で読めます
このページの内容
  1. MAS が adb を使う流れ
  2. 自分で接続を確認する
  3. ADB 設定の場所
  4. BlueStacks の adb が接続できない、その他のエミュレータのエラー
  5. ADB が動かない
  6. ADB device not found
  7. デバイスが offline と表示される
  8. ADB ポートが違う、または変わった
  9. 複数のインスタンス
  10. Mac の adb
  11. MAS がスキャンするエミュレータの ADB ポート
  12. それでも解決しないとき

Macro Automation Studio (MAS) のローカルデバイスはすべて、127.0.0.1:<port> への adb 接続です。adb が接続できないままデバイスが開始しないとき、原因はほぼ決まって数種類の問題のどれかで、同じ対処が BlueStacks、LDPlayer、MuMu Player、MEmu、Nox に当てはまります。このページでは、自分で実行できるコマンドとともにそれらを一覧にします。

MAS が adb を使う流れ

順序を知っておくとエラーが読めるようになります。デバイスの 開始 をクリックすると、MAS は次の順に動きます:

  1. 独自の adb ビルドで adb start-server を実行します。
  2. adb devices -l でデバイスを一覧します。あなたのポートがすでに載っていれば、先に切断します。
  3. adb connect 127.0.0.1:<port> を実行し、出力を読みます。「cannot connect」、「failed to connect」、「unable to connect」、「connection refused」、「bad port」のいずれかが出ると、デバイスは「unable to connect to device」で失敗します。
  4. 以降のすべてのコマンドを adb -s 127.0.0.1:<port> shell ... として送ります: タップ、スワイプ、スクリーンショットの screencap、画面サイズの wm size
  5. アプリの終了時に adb kill-server を実行します。

Windows では MAS は adb を C:\ProgramData\MacroAutomationStudio\3rdparty\platform-tools に同梱します。Mac では adb はアプリバンドル内にあり、PATH と Homebrew が予備です。

自分で接続を確認する

ターミナルを開き、MAS と同じ手順を実行します。エミュレータの設定にあるポートを使ってください。

bash
adb devices
adb connect 127.0.0.1:5555
adb -s 127.0.0.1:5555 shell wm size

正常なエミュレータは最後の行に Physical size: 540x960 のように答えます。出力がおかしいときは、サーバーをリセットしてやり直します:

bash
adb kill-server
adb start-server
adb connect 127.0.0.1:5555

adb の場所: エミュレータはそれぞれ独自のコピーを同梱しています (Nox は bin フォルダーに nox_adb.exe という名前で、MuMu Player はインストールフォルダー内に adb_server.exe を置きます)。MAS は Windows 版に同梱しており、Mac では brew install android-platform-tools で標準ビルドが手に入ります。

ADB 設定の場所

エミュレータADB をオンにする最初のインスタンスのポート追加のインスタンス
BlueStacks 5設定詳細 タブ、Android Debug Bridge をオン5555、または 5555 が使用中なら別のポートインスタンスごとに固有のポート。MAS は 5555 から 8500 を受け付けます
LDPlayer設定その他の設定ADB デバッグローカル接続を開く にし、設定を保存 をクリックしてインスタンスを再起動55555557、5559 など。MAS は 5599 までの奇数ポートを受け付けます
MuMu Playerポートは 設定ADB ポート、または デバイス診断 に表示16384 (古いバージョン: 7555)インスタンスごとに 32 を加算: 16416、16448 など
MEmu既定でオン。ホストのポートが Android のポート 5555 に対応2150321513、21523 など
Nox既定でオン。bin フォルダーから nox_adb.exe connect 127.0.0.1:62001 で接続6200162001 より上、63000 まで

ベンダーのページ: BlueStacksLDPlayerMuMu PlayerMEmuNox

BlueStacks の adb が接続できない、その他のエミュレータのエラー

ADB が動かない

何も接続できません: MAS の ポート 一覧が空で、adb connect が「cannot connect」か「connection refused」と報告します。

原因: エミュレータで ADB がオフになっているか、インスタンスの起動が終わっていません。BlueStacks と LDPlayer は ADB がオフの状態で出荷されます。

  • 上の表に従って ADB をオンにし、ベンダーの指示がある場合はインスタンスを再起動します。
  • Android のホーム画面が表示されるまで待ってから、新しいデバイスを追加更新 をクリックします。
  • ターミナルで adb connect 127.0.0.1:<port> を実行します。「connected to 127.0.0.1:」なら MAS も接続できます。
  • セキュリティツールがローカル接続をブロックしている場合は、adb とエミュレータを許可します。

ADB device not found

デバイスカードが Error で終わり、ログに「unable to connect to device」と出るか、スクリプトが最初の呼び出しで DeviceNotConnectedError を送出します。

原因: ポートに何も対応していない、エミュレータが閉じた、または実行開始後に接続が切れました。

  • デバイスカードのポートをエミュレータの設定にあるポートと比べます。デバイスを編集 で直します。
  • adb devices を実行します。項目がなければ adb connect 127.0.0.1:<port> を実行して応答を読みます。
  • エミュレータのインスタンスを再起動してから、もう一度 開始 をクリックします。MAS は開始のたびに最初から接続し直します。
  • エミュレータより先に MAS を起動した場合は、更新 をクリックしてポート一覧を最新にします。

デバイスが offline と表示される

adb devices127.0.0.1:<port> offline と表示され、コマンドが固まるか何も返しません。

原因: adb サーバーが古い項目を持っている、バージョンの異なる 2 つの adb ビルドがサーバーを取り合っている、またはエミュレータがまだ起動中です。

  • adb kill-server を実行してから、もう一度 adb connect 127.0.0.1:<port> を実行します。
  • MAS の実行中は、独自の adb サーバーを起動する他のツール (Android Studio、別のエミュレータのコンソール) を閉じます。
  • エミュレータのインスタンスを再起動します。「null or offline」に対する Nox 自身の助言も同じです: Nox を再起動して接続し直します。
  • 起動の完了を待ちます。まだ読み込み中のインスタンスは offline と答えます。

ADB ポートが違う、または変わった

昨日は動いたデバイスが、同じ設定なのに今日は失敗します。

原因: エミュレータはインスタンスの起動時にポートを配り、インスタンスの作成、複製、削除でずれます。BlueStacks は 5555 が使用中だと別のポートに移ります。

  • インスタンスの起動後、エミュレータの設定か adb devices から現在のポートを読み取ります。
  • MAS でデバイスカードを開き、デバイスを編集 をクリックして新しいポートを設定し、保存します。
  • 安定した構成にするには、エミュレータのマルチインスタンスマネージャーでインスタンスの順番を保ち、最初のインスタンスを削除しないようにします。

複数のインスタンス

最初のインスタンスしか接続できない、または MAS が「Port is already in use」と報告します。

原因: すべてのインスタンスに固有のポートと固有のデバイス項目が必要で、ポートは 1 度しか追加できません。

  • インスタンスごとに 1 台のデバイスを、そのインスタンスのポートで追加します。範囲は上の表にあります: LDPlayer と MuMu Player は奇数ポート 5555、5557、5559、MuMu Player 12 はインスタンスごとに 32 を加算、MEmu は 10 を加算、Nox は 62001 から数えます。
  • カードを見分けやすいよう、インスタンス名と一致するデバイス名を付けます。
  • インスタンスを 1 つずつ起動し、新しいポートが一覧に出るたびに 更新 をクリックします。
  • 同じマクロで別のアカウント: 設定プロファイルを使い、各デバイスに固有の引数を持たせます。デバイスグループ を参照してください。

Mac の adb

MAS が「ADB executable not found. Please install ADB using your package manager」と表示します。

原因: アプリバンドル内の adb を実行できず、PATH にも /opt/homebrew の下にも何も見つかりませんでした。

  • brew install android-platform-tools で標準ビルドをインストールし、MAS を再起動します。
  • ターミナルで which adbadb version で確認します。MAS はアプリバンドル、次に PATH、その次に /opt/homebrew/bin/usr/local/bin を探します。
  • Mac ではエミュレータも同じ Mac で動いている必要があります。MAS は常に 127.0.0.1 に接続します。
  • お使いの Mac 向けエミュレータビルドに ADB がまったくない場合、クラウドデバイス はローカルの adb なしで動きます。

MAS がスキャンするエミュレータの ADB ポート

MAS は ポート 一覧を adb devices ではなく起動中のプロセスから作ります。プロセス名とポート範囲の両方が一致したときだけポートを残します:

エミュレータプロセス名残すポート
BlueStacksHD-PlayerBlueStacks5555 から 8500
LDPlayerLdVBoxHeadlessLd9BoxHeadlessdnplayerLDPlayerVBoxNetNAT5555 から 5599 の奇数ポート
NoxNoxVMHandle62001 から 63000
MEmuMEmuHeadlessMEmuHyper21503 と、29993 までの末尾が 3 のすべてのポート
MuMu PlayerNemuHeadlessMuMu5555 から 5599 の奇数ポート、7555、16384 から 16576、26624 から 27264

127.0.0.10.0.0.0、またはすべてのインターフェイスにバインドされたポートだけが対象です。これらの規則の外にあるポートは一覧に出ませんが、カスタムポート は 1024 から 65535 の任意の値を受け付けるので、MAS が知らないエミュレータも手で追加できます。

それでも解決しないとき

デバイスカードの ログ (保存 ボタンでファイルに書き出せます)、adb devices の出力、エミュレータの名前とバージョンを集めて、Discord で質問するか support@automationmacro.com にメールしてください。アプリ全般の問題は トラブルシューティング ページにあります。

次のステップ

関連ページ

このページは役に立ちましたか?

質問がありますか? Discordで質問する