2015年3月14日土曜日

Android Studioのインストール中にゴタゴタしたのでそのメモとadbを使うまで

adb(Android Debug Bridge)というソフトウェアがあります。 android端末をCUIで扱ったりすることができるソフトです。 ちょっと使いたいネタがあったのでadbを含んだ開発環境をインストールしました。 androidアプリの開発にも興味があったのでAndroid Studioを選びました。

で、Android Studioのインストールでちょっとしたトラブルがありました。 セキュリティソフトのavastが誤検出したのです。 platform-toolsというフォルダの中の実行ファイルがやられました。 確かにgoogleオフィシャルからダウンロードしたAndroid Studioだと再確認、もちろんマルウェア騒ぎなどない事も確認してから手動で誤検出されたファイルを戻しました。 しかしAndroid Studioは起動せず。 再インストールしました。

それで済むかと思ったらもう1つトラブルが発生します。 トラブルというのはplatform-toolsのアップデートの失敗です。 しかしそのトラブルの原因はハッキリしてないんですよね。 Android Studioの起動時にコンポーネントのアップデートが走るんですが、そのときアップデート対象のフォルダが削除されます。 そのフォルダがロックされていたらアップデートに失敗します。 それが原因なのかavastの誤検出の後遺症が原因なのか...?

再インストール後、どこかのタイミングで肝心のadbがあるのか確認するためコマンドプロンプトでplatform-toolsフォルダの中のadb.exeを動かしてみました。 それがいけなかったのかもしれません。 コマンドプロンプトがplatform-toolsをロックしてました。 コマンドプロンプトはアップデート失敗の原因の1つで間違いありません。 でも、いつコマンドプロンプトを開いたか覚えて無いんですよね。 最初のアップデートの失敗時にコマンドプロンプトを開いてなかったような記憶が...? フォルダのロックだけが原因なのかavastも一枚噛んでいるのか切り分けが出来なくなってしまいました。

とりあえず、ゴチャゴチャやって最後に上手くいったときの対処を書きます。

  1. フォルダをロックしそうなアプリケーション(ファイラ、コマンドプロンプトなど)を全て閉じる。
  2. セキュリティソフトを一時的に停止。
  3. AndroidのsdkをインストールしたフォルダにあるSDK Manager.exeを使いそれっぽい項目を自分でインストール。
  4. セキュリティソフトをアクティブに。

これでAndroid Studioの起動に成功しました。 自分のせいってのも有るかもしれませんが、こういう分かり辛いのはカンベンですね。

お目当てのadbを動かすにはさらにスマホ側の受け入れ態勢を整え、PCにUSBドライバをインストールしなければなりません。 まずはスマホ側から。 あるタイミングで開発者向けオプションのUSBデバッグを有効にするんですが、比較的新しいバージョンのandroidでは開発者向けオプションが非表示になっています。 それを表示するために設定画面で端末情報を選択 → ビルド番号を7回タップします。 途中で後何回タップしたら開発者向けオプションが有効になるか表示されます。 7回タップし終えると、設定画面に開発者向けオプションが表示されたらUSBデバッグ有効/無効を指定できるようになります。

PCへのUSBドライバのインストールはスマホによって違うかもしれません。 手持ちのpriori2でやった事を書きます。 PC側はWindows7 64bit homeです。

  1. スマホをUSBデバッグモードにせずにスマホとPCをつなぐ。

    (デバイスマネージャーのルート(PC)直下に「ポータブル デバイス」が表示される。それはノータッチ。)

  2. つないだ後スマホのUSBデバッグを有効にする。

    (デバイスマネージャーのルート(PC)直下に「ポータブル デバイス」の他に不明なデバイスが表示される。)

  3. 不明なデバイスのハードウェアIDを調べ、それを元にandroid sdkの中の~\Android\sdk\extras\google\usb_driver\android_winusb.infを書き換える。

    [Google.NTx86]、[Google.NTamd64]のセクションにgoogle製のスマホの情報が並んでいる。 そこに手持ちのスマホが載っていないなら自分で追加。 Windowsが32bit版なら[Google.NTx86]、64bit版なら[Google.NTamd64]にハードウェアIDを書く。 項目は「%SingleAdbInterface%」と「%CompositeAdbInterface%」だけでよい。

  4. デバイスマネージャーでさきほどの不明なデバイスの右クリックメニューから「ドライバーソフトウェアの更新」を選ぶ。 色々たどってディスク使用 → 参照からさきほど書き換えたandroid_winusb.infのフォルダを指定する。

以上でドライバは正常にインストールされます。 しかし正常にインストールされていても「インストール失敗」と書かれたダイアログが開くかもしれません。 adbを立ち上げて確かめます。

PC側のコマンドプロンプトで ~\Android\sdk\platform-tools\ に移動して、

  • adb shell

を実行。 エラーメッセージが表示されてすぐにadbは終了します。 adbの初回起動時、スマホ側で確認ダイアログが出るのでアクセスを許可します。 もう1度、

  • adb shell

を実行したら正常に使えました。 とりあえずlsコマンドでファイル一覧を見て動いてるのを確認。 設定終了です。