adb・ドライバ関連の不具合発生・・・
Nexus4のアップデートに備えて、adb環境の確認をしようとすると
Nexus4のドライバでトラブルがありました。
同じような状況になる可能性があること、また解決方法がなかなか複雑だったことを踏まえて
まとめておこうと思います。
まずは状況からです。
Nexus4のUSBデバッグをオンにした状態で
SDKが導入済のPCに接続。
コマンドプロンプトを開き、「adb shell」を実行
→"error device not found"の文字が出る。
・・・これはおかしい。
確認してみると、Nexus4を外部ディスクとして認識している。
つまりPCからNexus4をコマンド操作できない状態になってしまいました。
MTPモードになっていることがわかったので(←これが今回の原因?)
PCから取り外した後で
設定→ストレージ→メニューボタン
二つチェックする項目があるので、どちらもチェックを外します。
再度接続してみるも、操作できる状態になりません。
(ドライバが見つからない状態です。)
そこで、ドライバを再度インストールしようと思いました。
PCのコントロールパネルから「ハードウェアとサウンド」を選択。
続いてデバイスマネージャーを開きます。
デバイスマネージャーの「操作」から「ハードウェア変更のスキャン」を実行します。
→これで、Nexus4が認識されて、ドライバのインストールが始まります。
・・・と思ったら、「ドライバが見つからない」とのこと。。
・・・SDK/extras/google/usb_driverを指定して検索しても発見できず・・・
この時点でかなり焦り始めます(笑)
adb自体は生きていることがわかっていたので
念の為に、いったんadbプロセスを殺しておきます。
adb.exeのあるフォルダ(一般的にはsdk/platform-tools)で
Shiftキー+右クリック→「コマンドウインドウをここで開く」を選択します。
adb kill-serverと打ち込み、adbをいったん終了させます。
先ほど開いた、デバイスマネージャーの中から「Nexus4」を探しましょう。
見つけたら、右クリック→プロパティ→詳細タブと進みます。
プロパティ下の選択部分で「ハードウェアID」を選択します。
すると下部の「値」の部分に二つの文字列が表示されます。
便宜上、二つの値を値①(短い方)と値②(長い方)としておきます。
内容は似ていますが最後の方が少しだけ違うかと思います。
ここまでできたら、この画面を開いたままで
sdk/extras/google/usb_driverを開きます。
フォルダの中に「android_winusb.inf」というファイルがあるので
テキストエディタ等で開きましょう。
このファイルに先ほど調べた「ハードウェアID」を追加していきます。
~~~
Google Nexus 4
%SingleAdbInterface% = USB_Install, 値①(短い方)
%CompositeAdbInterface% = USB_Install, 値②(長い方)
~~~
上記の文字列を[Google.NTx86]の下と[Google.NTamd64]の下に追加してください。
値①と値②はコピペで構いません。
記入する内容は[Google.NTx86]と[Google.NTamd64]で同じです。
記入ができたら、上書き保存しましょう。
ここまでできたら、デバイスマネージャーに戻り
操作→ハードウェア変更のスキャンを実行しましょう。
ドライバのインストールが開始されない場合は
Nexus4を右クリック→ドライバーソフトウェアの更新を実行します。
あとは参照先を「sdk/extras/google/usb_driver」に指定して検索をかければ
ドライバのインストールが完了します。
これでadbを実行する環境が復活します。
詳しい方には簡単な話しかもしれませんが、私はかなり焦ってしまいました(笑)
とりあえずは環境の確認が終わったので、次回はNexus7をアップデートしたいと思います。