Androidアプリ開発中にAndroid実機を認識しなくなった時の対処方法

公開日:2019/06/18 更新日:2019/06/18
Androidアプリ開発中にAndroid実機を認識しなくなった時の対処方法のサムネイル

android-image-adb.jpg Photo by Michael Mroczek on Unsplash

はじめに

Visual Studio Code(VSCode)でAndroidアプリを開発している際に、なぜか急にパソコンに接続しているAndroid実機を認識しなくなりました。中々各自の状況によってどの対処方法が有効かはわかりませんが、今回試した対処方法をいくつかまとめておきます。

状況

VSCode上でFlutterでAndroidアプリを開発していたところ、以下のように「No Devices」となってしまいパソコンにUSB接続しているAndroid実機を認識しなくなってしまいました。

no-devices-vscode.png

Android Studioでも同様に「no devices」状態となりました。

no-devices-android-studio.png

また、adb devicesコマンドを実行しても、以下のように何も表示されなくなりました。

$ adb devices
List of devices attached


Android実機を認識しなくなったタイミングとしては、あまり心当たりもなくとりあえずネット上にある色々な対処方法を試しました。

前提と環境

以下の通りです。

  • OS : Ubuntu18.04
  • Android実機 : Oppo R15 neo

Android実機の開発者オプションとUSBデバッグが有効になっていることを再確認する

これは大前提となりますが、Android実機の開発者オプションとUSBデバッグが有効になっていないと、パソコンにUSB接続してもVSCodeやAndroid Studioでは認識されません。 以下は私が使用しているAndroid実機のOppo R15 neoという端末のスクリーンショットですが、以下のように「設定」→「その他の設定」というメニューの中に「開発者オプション」がありました。

developers-option-oppo.png

「その他の設定」内の「開発者オプション」

developers-option-oppo-2.png

「開発者オプション」が有効になっていることを確認する

「開発者オプション」を有効にしただけではAndroid StudioやVSCodeでAndroid実機を認識できません。以下のように「開発者オプション」の中に含まれる「USBデバッグ」を必ず有効にする必要があるので忘れずに有効化するようにしましょう。

usb-debugging-oppo.png

なお、私の勘違いの可能性もありますが、「USBデバッグ」を有効済だったのにも関わらず、いつの間にか「USBデバッグ」が無効になっている場合もありました。したがって、Androidのアップデート後など、すでに有効化済の場合でも念の為に確認することをおすすめします。

開発者オプションが見当たらない場合

すでに開発に使っている端末では関係ありませんが、「開発者オプション」はデフォルトでは表示されていないため、はじめて開発に使う端末の場合は以下の公式ドキュメントの手順で「開発者オプション」をメニューに表示させる必要があります。

developer.android.com

Android 端末の設定アプリに含まれる開発者向けオプションでは、アプリのパフォーマンス分析やデバッグに役立つシステム動作設定が可能です。たとえば、USB デバッグの有効化、バグレポートの取得、タップの視覚表示、画面更新時のスクリーン点滅、2D 描画への GPU レンダリングの使用など、さまざまな設定ができます。

Android実機のUSB経由のファイル転送が有効になっていることを確認する

Android実機をUSBでパソコンと接続した場合、以下のようにいくつかの選択肢が表示されると思います。選択肢の文言や見た目はAndroidメーカーによって異なりますが、「ファイルを転送」というような選択肢を選択する必要があります。なお、どの選択肢を選択しているかはおそらく通知からも確認できると思います。

transfering-file.png

「ファイル転送」を選択する

notification-usb.png

通知でも「ファイルを転送」できるかどうか確認できる

設定からUSB経由のファイル転送を有効にする

もしAndroid実機をパソコンに接続しても「ファイルを転送」のような選択肢が出ない場合は、設定の「開発者オプション」から設定できる場合があります。具体的には、以下のように「開発者オプション」の中に「USB構成の選択」というようなメニューがあるので、これをタップして、さらに以下のように「MTP(Media Transfer Protocol)」を選択します。このMTPは「ファイルを転送」の選択肢そのものになります。

config-usb-type.png

「開発者オプション」内の「USB構成の選択」

mtp-menu.png

「USB構成の選択」内の「MTP(Media Transfer Protocol)」を選択する

なお、設定内の「USB構成の選択」などのメニュー名はAndroidメーカーによって異なるため、似たような名前がないか注意して見てみるといいかもしれません。

adbサーバを再起動する

Android Debug Bridge(adb)はAndroid端末を操作できるコマンドラインツールです。そしてAndroid実機が正常に認識されている場合は、以下のようにadb devicesの実行結果として認識されている実機が表示されます。

$ adb devices
List of devices attached
s34d2ced        device

しかし冒頭にも載せたようにAndroid実機が認識されず表示されない場合があります。その場合は、以下のようにadbサーバを一度停止して再起動することで認識されるようになる場合もあります。

$ adb kill-server
$ adb start-server

adbについては以下の公式ドキュメントに詳しく書かれています。

developer.android.com

Android Debug Bridge(adb)は、エミュレータ インスタンスや接続された Android 端末と通信できる用途の広いコマンドライン ツールです。

パソコン側でAndroid実機を認識できていることを確認する

そもそもAndroid実機がパソコン側で認識できているかを確認するために、Linuxならば以下のコマンドを実行してみます。Windowsの場合はマイコンピュータから確認できると思います。

$ lsusb

上記の実行結果として、接続しているAndroid実機が表示されていなければ、違う原因を探ったほうが良さそうです。例えば、ネット上で実際にUSBケーブルが問題だったケースもあるようです。また、どうにも認識されない場合は、可能ならば他のAndroid実機を接続してみるのも1つです。

まとめ

どうしても各自の状況に依存してしまうので1つの正しい解決策を提示できませんが、何かしら役に立てれば幸いです。

関連記事

開発アプリ

nanolog.app

毎日の小さな出来事をなんでも記録して、ログとして残すためのライフログアプリです。