[Android Studio] Android Studioのトラブルシューティングをいくつかご紹介します

2017.08.08

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちわ「iOSエンジニア」の中安です。

が、不慣れなAndroid開発もボチボチとやってたりしています。 不慣れゆえに先日も問題にぶち当たってしまい、なかなか解決の糸口が見いだせず長い時間を食ってしまいました(;´∀`)

今回はそんなぶち当たってしまった壁と、その解決をしたためます。

この記事はMacでのお話になります。ご注意ください

adbコマンドが打てない

adb(Android Debug Bridge)コマンドは、シェルから端末やエミュレータにごにょごにょできるコマンドですが、これには「パスを通す」という手順が要ることを忘れていて

$ adb
-bash: adb: command not found

こうなってしまい、ちょっと慌てました(汗

解決

まずはAndroidSDKの場所を把握します。 特殊なことをしてなければホームディレクトリの中のLibrary/Android/sdkにあるとは思いますが、念のため確認します。

  1. AndroidStudioの上部メニューから [Android Studio] > [Preference] を開く
  2. [Appearance & Behavior] > [System Settings] > [Android SDK] の設定画面を開く
  3. [Android SDK Location] にあるAndroidSDKのパスを確認。コピーする。

次にパスを通します

  1. ターミナルを開く
  2. ~/.bash_profileというファイル(なければ新たに作る)を開く。

そこに

export PATH=$PATH:(先ほどコピーしたパス)/platform-tools

を書いて保存します。

ターミナル再起動した後に $ adb と打って反応してくれればパスが通ることになります。

ブレイクポイントがすり抜けてしまう

確実に通るところにブレイクポイントを貼ってデバッグ実行したのですが、なぜかすり抜けてしまう。 アプリが落ちるわけでもなくログが出るわけでもない怪しい挙動をし始めました。 Log.d()などで原因を探ろうとしてみたのですが、それすらも反応しなくなってしまいました。 そうしてなかなか悩んでたのですが、よく見るとブレイクポイントの赤い丸がチェックマークになっていたり、バツになっていたりすることに気づきました。 バツになっているところにマウスを合わせるとNo executable code found at line ... というエラー文が出てしました。

解決

どうやら、AndroidStudioの機能 Instant Run が悪さをしていた模様。 使うと便利な一方、色々と開発環境に変な影響を与えてしまうこともあるそうです。 「今のところInstant Runの恩恵は要らないよ」という感じであれば機能を切っておいたほうが無難かもしれません。

  1. AndroidStudioの上部メニューから [Android Studio] > [Preference] を開く
  2. [Appearance & Behavior] > [Build, Execution, Deployment] > [Instant Run] の設定画面を開く
  3. [Enable Instant Run to hot swap code/resource ...] のチェックマークがONであればOFFにする

これでブレイクポイントが意図した通りに止まるようになりました。

クラス名入力がまったく補完されない

IDEでソースを書く時に Acti くらいまで打てば Activity (android.app.Activity) と補完できるものなのですが、 突如としてまったく補完されない事態に陥りました。

解決

どうやらAndroidStudioのキャッシュ系の問題だったようなので

  1. AndroidStudioの上部メニューから [File] > [Invaldate Cache / Restart] を押下
  2. 出てくる確認アラートの [Invalidate and restart]を押下

これで無事に意図したように補完がなされるようになりました。

まとめ

この記事で書いたことはAndroid開発者ならもしかしたら基本的なことかもわかりませんが、ツール特有の問題だったりするので、知らなければなかなか解決にたどり着かないものだなぁと思いました。

もしも同じような症状に苦しむ方の手助けになればと思います。