Androidアプリ開発中にAndroid実機を認識しなくなった時の対処方法
Photo by Michael Mroczek on Unsplash
はじめに
Visual Studio Code(VSCode)でAndroidアプリを開発している際に、なぜか急にパソコンに接続しているAndroid実機を認識しなくなりました。中々各自の状況によってどの対処方法が有効かはわかりませんが、今回試した対処方法をいくつかまとめておきます。
状況
VSCode上でFlutterでAndroidアプリを開発していたところ、以下のように「No Devices」となってしまいパソコンにUSB接続しているAndroid実機を認識しなくなってしまいました。
Android Studioでも同様に「no devices」状態となりました。
また、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という端末のスクリーンショットですが、以下のように「設定」→「その他の設定」というメニューの中に「開発者オプション」がありました。
「開発者オプション」を有効にしただけではAndroid StudioやVSCodeでAndroid実機を認識できません。以下のように「開発者オプション」の中に含まれる「USBデバッグ」を必ず有効にする必要があるので忘れずに有効化するようにしましょう。
なお、私の勘違いの可能性もありますが、「USBデバッグ」を有効済だったのにも関わらず、いつの間にか「USBデバッグ」が無効になっている場合もありました。したがって、Androidのアップデート後など、すでに有効化済の場合でも念の為に確認することをおすすめします。
開発者オプションが見当たらない場合
すでに開発に使っている端末では関係ありませんが、「開発者オプション」はデフォルトでは表示されていないため、はじめて開発に使う端末の場合は以下の公式ドキュメントの手順で「開発者オプション」をメニューに表示させる必要があります。
Android 端末の設定アプリに含まれる開発者向けオプションでは、アプリのパフォーマンス分析やデバッグに役立つシステム動作設定が可能です。たとえば、USB デバッグの有効化、バグレポートの取得、タップの視覚表示、画面更新時のスクリーン点滅、2D 描画への GPU レンダリングの使用など、さまざまな設定ができます。
Android実機のUSB経由のファイル転送が有効になっていることを確認する
Android実機をUSBでパソコンと接続した場合、以下のようにいくつかの選択肢が表示されると思います。選択肢の文言や見た目はAndroidメーカーによって異なりますが、「ファイルを転送」というような選択肢を選択する必要があります。なお、どの選択肢を選択しているかはおそらく通知からも確認できると思います。
設定からUSB経由のファイル転送を有効にする
もしAndroid実機をパソコンに接続しても「ファイルを転送」のような選択肢が出ない場合は、設定の「開発者オプション」から設定できる場合があります。具体的には、以下のように「開発者オプション」の中に「USB構成の選択」というようなメニューがあるので、これをタップして、さらに以下のように「MTP(Media Transfer Protocol)」を選択します。このMTPは「ファイルを転送」の選択肢そのものになります。
なお、設定内の「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については以下の公式ドキュメントに詳しく書かれています。
Android Debug Bridge(adb)は、エミュレータ インスタンスや接続された Android 端末と通信できる用途の広いコマンドライン ツールです。
パソコン側でAndroid実機を認識できていることを確認する
そもそもAndroid実機がパソコン側で認識できているかを確認するために、Linuxならば以下のコマンドを実行してみます。Windowsの場合はマイコンピュータから確認できると思います。
$ lsusb
上記の実行結果として、接続しているAndroid実機が表示されていなければ、違う原因を探ったほうが良さそうです。例えば、ネット上で実際にUSBケーブルが問題だったケースもあるようです。また、どうにも認識されない場合は、可能ならば他のAndroid実機を接続してみるのも1つです。
まとめ
どうしても各自の状況に依存してしまうので1つの正しい解決策を提示できませんが、何かしら役に立てれば幸いです。
関連記事
- 公開日:2019/12/23 更新日:2019/12/23
複数デバイス間でローカルのファイルを無制限に同期できるSyncthingをLinuxで使用する手順
Syncthingはローカルにあるファイルを複数のデバイス間で同期することができるオープンソースソフトウェアです。クラウド経由でファイルを同期するのではなく、ローカル同士で同期します。この記事ではUbuntuとAndroidでSyncthingを使用してファイルを同期するまでをまとめます。
- 公開日:2019/12/09 更新日:2019/12/09
Google Play Consoleに登録してデベロッパーアカウントを作成する手順
Android用にアプリをGoogle Play Storeで公開して配布するには、まずGoogle Play Consoleに登録してデベロッパーアカウントを作成する必要があります。この記事ではこの手順をまとめます。
- 公開日:2019/12/03 更新日:2019/12/03
Android App Bundleを実機にインストールして試すために使うbundletoolの使い方
Flutterなどで開発したAndroidアプリを自分の手元にある実機にインストールして試したい場合はbundletoolを使用するよう公式ドキュメントに記載されています。ただ、常識であるためなのか詳しい使い方が書かれておらず戸惑ったのでメモしておきます。
- 公開日:2019/10/06 更新日:2019/10/06
adbコマンドでAndroid端末とパソコン間でファイルをコピーする
Android端末向けのアプリ開発をしている際にAndroid端末内にあるファイルをパソコンに移したり逆にパソコン内のファイルをAndroid端末に移動したりしたいことがあり、その際にadb(Android Debug Bridge)コマンドを使用したのでその使い方を簡単にまとめておきます。
- 公開日:2019/08/17 更新日:2019/08/17
Androidスマートフォンの画面をパソコン上にミラーリングして操作できるScrcpyの使い方
Androidスマートフォンの画面をパソコン上にミラーリングして表示し、さらに操作もできるScrcpyというアプリをUbuntuにインストールして使ってみたのでその使い方をまとめます。なお、ScrcpyはWindows、macOSでも動作します。