adb devices でデバイスが offline になる原因と対処法
adb devices でスマホが offline と表示される原因を、USB 接続と Wi-Fi 接続の両方について解説します。adb サーバーの再起動から platform-tools の更新まで、効果のある対処法をまとめました。
adb devices にスマホは表示されるものの、device ではなく offline となっている状態です。
List of devices attached
R58M123ABC offlineoffline は、adb サーバーからスマホは見えているものの、両者の ADB ハンドシェイクが完了しなかったか、接続が切れたことを意味します。adb shell や adb install などのコマンドは error: device offline で失敗します。以下、よくある原因から順に紹介します。
1. adb サーバーを再起動する
最も多い原因は、古い状態のまま残った adb サーバーです。スマホがスリープした後、再起動した後、USB モードを切り替えた後などに起こりやすくなります。
adb kill-server
adb start-server
adb devicesサーバーを再起動したら、ケーブルを一度抜いて挿し直してください。
2. スマホのロックを解除して確認ダイアログを見る
パソコンに初めて接続すると、スマホに USB デバッグを許可しますか? と表示されます。この応答待ちの間、adb のバージョンによっては unauthorized ではなく offline と表示されます。画面のロックを解除して 許可 をタップしてください。ダイアログが出ない場合は、開発者向けオプションで USB デバッグ承認の取り消し をタップし、USB デバッグをオフにしてからオンに戻し、接続し直します。
3. platform-tools を更新する
古い adb クライアントは、新しい Android とのハンドシェイクに失敗して offline になることがあります。バージョンを確認します。
adb version数年前のものなら、Google から最新の Android SDK Platform-Tools をダウンロードしてください。PATH が古い adb を指したままになっていないかも確認しましょう(Android Studio、Genymotion、一部のスマホ管理ソフトは独自の adb を同梱しています)。
4. 2 つのプログラムがスマホを取り合っている
Android Studio、scrcpy、スマホ管理アプリ、エミュレーター、メーカーの PC 用ソフトは、それぞれ独自の adb サーバーを起動することがあります。バージョンの違うサーバー同士が互いを再起動し続け、スマホが offline に切り替わってしまいます。ほかのツールを閉じてから、手順 1 のとおりサーバーを再起動してください。詳しくは デバイスが busy / unauthorized になるときの対処法 をご覧ください。
5. ケーブル、ポート、USB モード
- データ通信に対応していることが分かっている別のケーブルを試し、ハブではなくパソコン本体の USB ポートに挿してください。
- 機種によっては、USB の通知から USB モードを 充電のみ から ファイル転送 に切り替えると、接続が安定します。
6. Wi-Fi の場合: 接続が切れた
adb connect で接続したスマホは、Wi-Fi がスリープしたとき、IP が変わったとき、ワイヤレス デバッグがオフになったときに offline になります。
adb disconnect 192.168.1.20:5555
adb connect 192.168.1.20:5555これが Connection refused で失敗する場合は、ネットワークモードがオフになっています。Connection refused の直し方 を参照してください。
7. スマホを再起動する
どれもうまくいかない場合は、スマホとパソコンを再起動します。スマホ側で固まった adbd や、パソコン側の古い USB ドライバーの状態がリセットされます。
ADBKit の場合
ADBKit はパソコン上の adb サーバーを使いません。Chrome や Edge が WebUSB でスマホと直接通信するため、ADBKit ではサーバーのバージョン違いでデバイスが offline になることはありません。ただし USB 接続を ADBKit だけで使う必要があります。ほかのプログラムの adb サーバーがスマホをつかんでいる場合、ADBKit はデバイスが busy であることと、何を閉じればよいかを表示します。Wi-Fi 接続では、「接続が切れた」状態をはっきり表示し、再接続を提案します。
adb devices に何も表示されない場合は、adb devices にデバイスが表示されないときの対処法 をご覧ください。