カテゴリー: 設定

Android Studioの設定について紹介しています。使っていてなんか不便だなと思ったら、ここの設定を変更してみるといいかもしれません。

Android StudioでJDKのパスを指定する

この記事は最終更新から3ヶ月以上が経過しています。情報が古い可能性があります。

久しぶりにAndroid Studioでサンプルアプリを作ろうとしたら、JDK7を使えと怒られてしまいました。

設定を確認すると、JDK6を使うように設定されていました。

Project Structure

Project Structureはcmd + ;で開きます。

JDKは1.8をインストールしていたはず・・・と思って確認すると、やっぱり1.8がインストールされていました。

コマンドプロンプトでJDKのバージョン確認

コマンドプロンプトを開いてjava -versionでインストールされているJavaのバージョンが確認できます。(正確にはJREのバージョンの確認ですけど)

しかし、/System/Library/Java/JavaVirtualMachinesにはJDK6しかない。調べてみると、JDK1.7以降ではインストールされているディレクトリが異なる模様。

それぞれのJDKのディレクトリを確認するには、コマンドプロンプトで/usr/libexec/java_home -v バージョンで、JDKのバージョンごとのインストールされているディレクトリが確認できます。

java_homeコマンドでインストールされているディレクトリを確認

とりあえずJDK7を使えというエラーメッセージだったので、JDK7のディレクトリを指定してやることでエラーメッセージが消えました。

JDK7を使えというエラーメッセージ

ちなみに、JDK7はOracleのサイトからダウンロードできます。

Android Studioでテスト用のディレクトリ名を確認する方法

この記事は最終更新から3ヶ月以上が経過しています。情報が古い可能性があります。

テストコードを配置するディレクトリ名は、以前はinstrumentalTestという名前でした。しかし現在ではandroidTestという名前になっています。

Googleで検索すると、未だに「instrumentalTestというディレクトリを作成しよう」という情報もあるので注意が必要です。

と言っても、最近のAndroid Studioは最初からテスト用のディレクトリを用意してくれるようになったので、自分でテスト用ディレクトリを用意する必要性もなくなっています。

ちなみに自分の使っているAndroi dStudioのテスト用ディレクトリ名が何なのかは、app/app.imlを確認すればわかると思います。

app/app.iml

<sourceFolder ... isTestSource="true" />というタグを見れば、テスト用のディレクトリがandroidTestであることが分かります。

もし古いバージョンのAndroid Studioを使っている場合は、ここを見ることでディレクトリ名として何を使えばいいのかが分かります。

IdeaVimでxキーで文字削除する際にレジスタを汚さないようにする

この記事は最終更新から3ヶ月以上が経過しています。情報が古い可能性があります。

OSの機能(cmd + xcmd + v)ではなくIdeaVimのddを使う場合に、移動先にゴミがあったのでxキーで削除して、いざペーストしようとしたら、xキーで削除したゴミが貼り付けられてしまった。「なんでだよムキーっ」とイラッとした経験を持つ人はきっと多いはずです。

そんなことにならないように、xキーで文字削除する際にレジスタを書き換えないようにする設定です。正確に言うと、IdeaVimではなくVimの設定の話ですけどね。

~/.ideavimrcを作成して以下の2行を書くだけ。

nnoremap x "_x
vnoremap x "_x

意味としてはノーマルモードとビジュアルモードにおいて、Xキーのキーマッピングを"_xに書き換えるという意味です。

"_とはなんぞやという話ですが、これはブラックホールレジスタという特殊なレジスタを表しています。Xキーのデフォルトの挙動は、1文字デフォルトのレジスタに移動するというものですが、この移動先をブラックホールレジスタに指定してやるという意味になります。

Android Studioで使われているショートカットキーを調べる

この記事は最終更新から3ヶ月以上が経過しています。情報が古い可能性があります。

Android Studioで使われているショートカットキーは、Preference > Keymapで確認することができます。

cmd + ,でPreferencesを開き、Keymapを選択すると、Android Studioで使われているショートカットキーを確認したり、自分でカスタマイズしたりすることができます。

ちなみにこのキーマップの設定ですが、「間違えて押してしまったショートカットキーで何か動作したけど、一体何をやっているのかわからない」というものを調べることにも使えます。

検索窓の隣にある虫眼鏡のアイコンを押すと、ショートカットキーから機能を検索することができます。逆引き検索ができるんですね。

ショートカットキーから機能を調べる

この機能を利用することで、ショートカットキーが割り当てられている機能を探したり、何も割り当てられていないショートカットキーを探したりすることができます。

Setter,Getterを自動生成する際にフィールド名先頭のmを無視する方法

この記事は最終更新から3ヶ月以上が経過しています。情報が古い可能性があります。

Androidのコーディング規約で、非Publicかつ非staticなフィールドは、先頭にmつけるというものがあります。これに従ってコーディングしていくわけですが、そのままだととあることをしようとしたときに困ったことになります。それは、Getter,Setterを自動生成する時です。

ソースコードエディタ上でcmd + nもしくはctrl + enterを入力すると、Generateというポップアップが出てきて、そこでGetterやSetterの生成を行うことができます。

例えば作成しているクラスがmHogeというフィールドを持っていて、Setterを生成するとしましょう。

ここで何も考えずにSetterを作成すると、生成されるメソッド名はsetmHoge()となります。そう、余計なmが一緒についてくるのです。この場合、通常はsetHoge()としたいでしょうから、これでは非常に面倒くさいことになります。

これはAndroid Studioの設定を変えることで対処できます。

cmd + ,でPreferenceを開き、Code Style > Javaを選択、Code Generationのタブを開きます。そしてFieldのName prefixの欄にmを入力してやります。これだけでオッケー。

Code Generation

ついでにコーディング規約でstaticフィールドの先頭にはsをつけるという規約があるので、Static fieldにsも追加しておきます。

これでSetterを生成した際にsetHoge()と解釈してくれるようになります。

Android Studioと銘打っているのに、なぜコーディング規約に従った設定になっていないのか不思議で仕方ありません・・・。