この記事では、adbコマンドのよくあるエラーと解決策をまとめます。
うまく認識されず困っていれば、ぜひどうぞ。
adbコマンドを使う前提条件
adb(Android Debug Bridge)コマンドを使えば、通常の設定画面からは行えない、高度なカスタマイズ指示をAndroidへ与えることが可能です。
なんだか難しそうですが、、プログラムの知識がない一般ユーザーであっても、割と簡単に操作できるツールとなっています。
初めて使う場合、次の事前準備が必要です。
- パソコンのadb環境等を用意する
- 開発者向けオプションでUSBデバッグを有効にする
- adb devicesで接続確認する
手順①:パソコンのadb環境等を用意する
お使いのパソコンでadbコマンドを使用できる環境を用意して下さい。
Windows・Macそれぞれにおける手順は関連記事で解説しています。
正しく設定できているか検証するため、次のコマンドを実行して下さい。
adb
長々とコマンドが表示されれば成功です。
一方、次のメッセージが表示される場合、正常に設定できていません。
'adb' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
改めて、お使いのパソコンでの設定状況を確認して下さい。
また、パソコンとAndroidを接続するケーブルが必要です。
スマートフォンのUSB端子形状(micro USB / Type C)に合わせ用意しましょう。
手順②:開発者向けオプションでUSBデバッグを有効にする
Androidで設定の システム から 開発者向けオプション を開き、
初めて開発者向けオプションを使う場合、デバイス情報の ビルド番号 を連続タップして、メニューを表示させて下さい。
詳細は関連記事【Androidの開発者向けオプションを表示/非表示にする方法! デベロッパーモードで隠れ機能を使おう】で解説しています。
USBデバッグを有効にします。
USBデバッグの特徴・リスクについては、関連記事【AndroidでUSBデバッグを有効/無効にする方法! 設定をオンオフ切り替えよう】で解説しています。
この状態でAndroidとパソコンをUSB接続します。
もしUSB接続の選択画面が出る場合、「ファイル転送モード」を選べばOK。
手順③:adb devicesで接続確認する
adb環境を用意したパソコンで、次のコマンドを実行します。
adb devices
次のようなメッセージが表示され、接続したAndroid実機を認識できればOKです。
List of devices attached xxx(デバイス情報) device
なお初めて接続するパソコンの場合、Android側で下記メッセージが出るので、このパソコンからのUSBデバッグを常に許可する にチェックを入れましょう。
USBデバッグを許可しますか? このパソコンのRSAキーのフィンガープリント:
以上が、adbコマンドを使用する事前準備です。
具体的にadbコマンドでできるコトは、関連記事【adbコマンドのできること一覧! Androidをカスタマイズしよう】で解説しています。
adb devices/fastboot devicesで認識されない原因
adbコマンド・fastbootコマンドで失敗する原因の大半は、パソコンがAndroidをうまく認識できていないケースです。
このパートでは、具体的にチェックすべきポイントを紹介します。
- 前提デバイスを認識できないとは?
- 原因①USBデバッグが許可されていない
- 原因②adb/fastbootドライバが更新されていない
- 原因③fastbootモードへ切り替えできていない
前提:デバイスを認識できないとは?
まずは状況確認のため、パソコンとUSB接続したAndroidが正しく認識されているか検証しましょう。
adbコマンド:adb devices
adbコマンドの場合、下記で接続中の端末を表示できます。
adb devices
正常に接続されていれば、次のようなメッセージが表示されます。
List of devices attached xxx(デバイス情報) device
一方、次のメッセージが出る場合、adbデバイスとして認識できていません。
- 例1:unauthorized
- 例2:offline
▼例1:unauthorized
List of devices attached xxx(デバイス情報) unauthorized
この状態で任意のadbコマンドを実行しても、次のメッセージが出て先に進めません。
no devices/emulators found
▼例2:offline
List of devices attached xxx(デバイス情報) offline
この状態で任意のadbコマンドを実行しても、次のメッセージが出て先に進めません。
device offline
fastbootコマンド:fastboot devices
fastbootコマンドの場合、下記で接続中の端末を表示できます。
fastboot devices
正常に接続されていれば、次のようなメッセージが表示されます。
xxx(デバイス情報) fastboot
一方、何も表示がない場合、fastbootデバイスとして認識できていません。
この状態で任意のfastbootコマンドを実行しても、次のメッセージが出て先に進めません。
< waiting for any device >
原因①:USBデバッグが許可されていない
改めて、Android側の設定を確認して下さい。
設定の システム から 開発者向けオプション を開き、
初めて開発者向けオプションを使う場合、デバイス情報の ビルド番号 を連続タップして、メニューを表示させて下さい。
詳細は関連記事【Androidの開発者向けオプションを表示/非表示にする方法! デベロッパーモードで隠れ機能を使おう】で解説しています。
USBデバッグを有効にします。
USBデバッグの特徴・リスクについては、関連記事【AndroidでUSBデバッグを有効/無効にする方法! 設定をオンオフ切り替えよう】で解説しています。
この状態でAndroidとパソコンをUSB接続します。
もしUSB接続の選択画面が出る場合、「ファイル転送モード」を選べばOK。
また初めて接続するパソコンの場合、Android側で下記メッセージが出ます。
このパソコンからのUSBデバッグを常に許可する にチェックを入れましょう。
USBデバッグを許可しますか? このパソコンのRSAキーのフィンガープリント:
原因②:adb/fastbootドライバが更新されていない(Windowsのみ)
環境によっては、手動でパソコンへドライバのインストールが必要です。
ドライバは機種メーカーによって手順が異なり、Googleの公式ページで紹介されています。
参考 Android Developers – Google USBドライバを入手する(Pixel系列はコチラ)
参考 Android Developers – OEM USB ドライバのインストール(他メーカーはコチラ)
Google公式ページより、USBドライバをダウンロードします。
利用規約に同意の上、実行するとZipファイルが保存されます。
ダウンロードしたZipファイルは展開して下さい。
保存場所はどこでもOKですが、後で展開したフォルダの場所(パス)を使います。
次にスタートボタン(Windowsアイコン)で右クリックメニューより デバイスマネージャー を開き、
接続中のデバイスを選択して、ドライバーの更新 へ。
コンピューターを参照してドライバーを検索 より、
参照 を選び、
先ほどダウンロード・展開したドライバのパスを設定。
インストール します。
正常に更新されればOK。
もし更新に失敗する場合、別のやり方を試しましょう。詳しくは関連記事【fastboot devicesが認識されない問題! Google USBドライバーを更新してfastbootコマンドを使おう】で解説しています。
接続したデバイスが、しっかり認識されるようになるはずです。
原因③:fastbootモードへ切り替えできていない
fastbootコマンドを使うには、Androidをfastbootモードへ切り替える必要があります。
次のadbコマンドを実行すれば、切り替えできます。
adb reboot bootloader
または端末の電源をオフにして、画面が変わるまで 電源 キーと 音量下げ キーを同時に長押しでもOK。
端末が再起動され、通常とは異なるfastbootモードの画面が表示されます。
それでも解決しない場合・・・
次のポイントをチェックして下さい。
- adbサーバープロセスを更新する
- Android本体/PC本体を再起動する
- USBケーブルを疑う(ケーブルの抜き差し/ケーブルの交換)
なおadbサーバープロセスは、次のコマンドで再起動できます。
▼プロセスの終了
adb kill-server
▼プロセスの再開
adb start-server
特定のadb/fastbootコマンドで接続エラーとなる原因
adb devicesで端末を認識できる一方、ある特定のコマンドでのみエラーが発生する際の原因を紹介します。
- 原因①コマンドのOS要件を満たしていない
- 原因②単純にコマンドを間違えている
原因①:コマンドのOS要件を満たしていない
adbコマンドによっては、Android OSバージョンの条件があります。
もし条件を満たしていない場合、エラーメッセージが表示されます。
▼エラー例1
/system/bin/sh: ●●(コマンド): not found
▼エラー例2
Error: unknown command '●●(コマンド)'
▼エラー例3
Error: Unknown option: -●●(コマンド)
OS要件のあるコマンド例です。
コマンド | 機能 | OS条件 |
---|---|---|
adb shell sm partition disk:<SDカード名> private | SDカード内部ストレージ化 | Android 6 |
adb shell pm block <アプリのパッケージ名> | アプリ無効化 | Android 4.4 |
adb shell pm hide <アプリのパッケージ名> | アプリ無効化 | Android 5 |
adb shell pm uninstall -k –user 0 <アプリのパッケージ名> | アプリ削除 | Android 5 |
adb shell pm disable-user –user 0 <アプリのパッケージ名> | アプリ無効化 | Android 7 |
Android OSバージョンは通常、設定から確認できます。
OSバージョン確認手順の詳細は、関連記事【AndroidのOSバージョンを調べアップデートする方法! 最新機能へソフトウェアを上げよう】で解説しています。
もしOSバージョンを満たしてない場合、代替コマンドがないか調べてみましょう。
特にアプリ無効化系のコマンドは、歴代OSバージョンに応じて数パターン用意されています。
強制無効化 pm disable-user |
強制アンインストール pm uninstall |
強制無効化 pm block |
強制無効化 pm hide |
|
---|---|---|---|---|
Android 4.4 | ✕ | ✕ | ○ | ✕ |
Android 5 | ✕ | ○ | ✕ | ○ |
Android 6 | ✕ | ○ | ✕ | ✕ |
Android 7以降 | ○ | ○ | ✕ | ✕ |
アプリ無効化コマンドの詳細は、関連記事【Androidでプリインストールアプリを強制的に削除する方法! 消せない標準ソフトもアンインストール/無効化できる】で解説しています。
原因②:単純にコマンドを間違えている(例:タイプミス)
たとえ1文字でも間違えると、adbコマンドはエラーとなります。
▼エラー例1
Error: java. lang. IllegalArgumentException
▼エラー例2
Error: Unknown option: -●●(コマンド)
▼エラー例3
'●●(コマンド)' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。
基本的な部分ですが、改めて入力したコマンドが正しいかチェックして下さい。
〆:順番に原因を切り分けよう!
以上、adbコマンドでエラーが出る原因まとめ! adb/fastboot devicesの認識されない問題を解決しよう の説明でした。
adbコマンドのエラー原因は、パソコンがAndroidを正常に識別できてないケースがほとんどです。
記事中で要点をまとめているので、順番にチェックしてみて下さい。
コメント
USBデバッグをONにし、pcに繋げたのですが、許可しますか?という表示が出ません。
USBの接続は認識されました。スマホは android 9 です。なにか対処法はないでしょうか。。