Android Studioで実機が認識されない問題が起きました。
いろいろ試した末に解決したので、対処法を整理します。
はじめに
Android Studioでスマホ実機とPCを繋ごうとしたとき、実機が認識されない問題が発生しました。
USBで実機をつないでいるにも関わらず、プログラム実行時に表示されるウィンドウには上の画像のように、
No USB devices or running emulators detected Connected Devices <none>
接続されたデバイスがありません、と表示されてしまいました。
うまくいく対処法がなかなか見つからず、ここでかなりの時間を消費してしまいました。
試行錯誤の末にようやく解決したので、備忘録を残します。
作業環境
PC側の環境:Windows10 / Android Studio 3.1.4 / JDK 8
スマホ側の環境: Android8.0 / Huawei Nova2
Android Studioで実機が認識されないときの対処法
「USB使用」を「写真を転送」または「ファイルを転送」に変える
USBを用いてスマホをPCに接続するときには、次の5つの接続方法があるようです。
「写真を転送」
「ファイルを転送」
「充電のみ」
「給電」
「MIDI」
この設定は、スマホ側から
設定 > デバイス接続 > USB
で確認することができます。
この設定が、デフォルトでは「充電のみ」となっていました。 これが実機が認識されない原因のひとつでした。
「写真を転送」はPTP(Photo Transfer Protocol)、「ファイルを転送」はMTP(Media Transfer Protocol)と呼ばれる接続形式で、実際にPCとデータのやり取りをするための接続方式なのでしょう。 このどちらかに設定することで、Android Studioが実機を認識するようになりました。
さて、私の場合は上記の設定変更が決定打となりましたが、これ以外にも前提として変更を行った箇所があります。 もしかすると必要でない操作があったのかもしれませんが、以下記録します。
「USBデバッグ」をONにする
スマホ側の設定で「USBデバッグ」をONにするのは、必要な作業です。
手順は、次のようになります。
設定 > システム > 端末情報 > ビルド番号を連続タップし「デベロッパーになりました」の表示が出る
設定 > システム > 開発者向けオプションから、「開発者向けオプション」をONにする
同じく開発者向けオプションから、「USBデバッグ」ONにする
注意したいのは、この「USBデバッグ」は、他の設定を変更した際にOFFに戻ることがあることです。
結局そのタイミング・原因はわかりませんでしたが、私は何かを変更したときはこの「USBデバッグ」がONになっていることを定期的に確認していました。
Android SDK Managerから該当Androidバージョンをインストールする
Android StudioのSDK Managerから、実機Android OSの該当バージョンをインストールしました。
SDK ManagerでサポートされているAndroid OSバージョンは、
Android Studioツールバー内「Tools」 > SDK Manager
から確認することができます。
自身のスマホAndroidバージョンの「Status」が「Not installed」である場合は、インストールする必要があります。 インストールするには、チェックボタンをチェックし、左のインストールボタンを押します。
「Google USB Driver」をインストールする
先ほどと同じくAndroid StudioのSDK Managerから、「Google USB Driver」をインストールしました。
Android Studioツールバー内「Tools」 > SDK Manager > SDK Toolsタブ
ここから、「Google USB Driver」の欄を確認します。
これもまた「Status」が「Not installed」である場合は、インストールする必要があります。
チェックボタンをチェック、インストールボタンを押すことで、インストールができました。
おわりに
今回は、Android Studioでプログラムの実行時に実機が認識されないときの対処法を書き残しました。
最終的に解決したはいいのですが、よく考えると自分がスマホの仕組みをよく知らないことに驚きました。
例えば、今回の私の場合、スマホとPCの接続方法の設定が肝となっていました。 USBを介した接続がどのような仕組みで行われているのか、どのような種類があるのか、よく知りません。 あるいはもっと言えば、スマホがハードウェアとしてどのような構造なのか、どう情報をやり取りしているのかも大して知りません。
日常的に使っているのに全然中身を知らないというのは、なかなか面白いことです。 このあたりの仕組みを調べてみるのも面白そうですね。
[関連記事]