Android Studio最速入門~効率的にコーディングするための使い方

第6回 Android StudioとGradle[後編]

この記事を読むのに必要な時間:およそ 9 分

その2:build.gradleに設定した内容とは別に,Android Studioに手動で設定する

これまで紹介した方法はbuild.gradleさえ修正すればAndroid Studioに自動的に反映されますが,正直煩わしい点が多いです。現状,それほどAndroid Studioとの連係がスムーズではないので,こんな割り切った方法もあります。

build.gradleリスト4のように設定して,<PROJECT_HOME>/MyFirstApp/libsにある*.jarファイルをすべてライブラリの対象とします。

リスト4 build.gradleの修正点

dependencies {
  compile fileTree(dir: 'libs', include: '*.jar')
}

当然,この設定ではAndroid Studioは自動でbuild.gradleのライブラリ指定を認識しないため,別途「libsディレクトリはライブラリの置き場所」であることを設定します。このライブラリの設定方法は幾通りかあります。

  • 「Project Structure / Modules / Dependencies」「Module用ライブラリ」として登録
  • 「Project Structure / Libraries」「Project用ライブラリ」として登録してから,Moduleに設定
  • Projectツールウィンドウで指定したディレクトリ(やJarファイル)「Module用ライブラリ」として登録
  • etc...

一番簡単なProjectツールウィンドウからの登録方法を図13に示しておきます。

図13 コンテキストメニュー「Add as Library...」でライブラリを追加(クリックすると動きがわかります)

「Add as Library...」でライブラリを追加` &title=`図13 コンテキストメニュー「Add as Library...」でライブラリを追加` &width=`400` />

「Project用ライブラリ」と異なり「Module用ライブラリ」に識別する名前は要りません。すでに登録済みの「android-support-v4.jar」はそのまま残していても邪魔にはなりませんが,気になるなら削除しておきましょう。

[コラム]ライブラリにソースやJavadocを添付するにはどうしたらいいの?

Gradleには各IDE向けのプラグインEclipseプラグインIntelliJ IDEAプラグインがあり,通常はそのプラグインを利用してライブラリの諸設定をするようです(と言うより,IDEプラグインを使って,GradleからIDEのプロジェクトファイルを生成する,のが従来の使い方のようです⁠⁠。

そうは言っても,GradleのIntelliJ IDEAプラグインがAndroid Studioでも正しく動く保証は無さそうなので,当面は自力でソースやJavadocを入手して,手作業でライブラリに関連付けした方が無難なようです。

図14 ライブラリにソースやJavadocを関連付ける(クリックすると動きがわかります)

[TIPS#3]コンパイルエラーが表示されません

Windows版Android Studioで明らかにエラーのあるソースコードをビルドしてみても,ビルド結果が表示されるのMessagesツールウィンドウに詳細なエラーメッセージが表示されません。

図15 Windows版Android Studioではコンパイルエラーが表示されない

図15 Windows版Android Studioではコンパイルエラーが表示されない

ちなみにですが,Mac版のAndroid Studioでは上記のようなことにはならず,普通にエラーメッセージが表示されます。

図16 Mac版Android Studioではコンパイルエラーが表示される

図16 Mac版Android Studioではコンパイルエラーが表示される

なかなか致命的な感じがしますが,どうもWindows版Android Studioの制限のようです。コンパイルエラーを知りたい場合は,コマンドラインからgradlew buildを実行するか,Android Studioのエディタが指摘する問題を確認するくらいしか無さそうです(Android Studio v0.1.3でも試してみましたが,まだ解決していませんでした⁠⁠。

余談ですが,プログラマ向けQ&AサイトのStack Overflowに次のようなQ&Aがあります。

回答に『⁠⁠Preferences / Compiler / Use external build」を無効にすればよい』とありますが,この方法はオススメしません。この機能を無効にすると,GradleではなくAndroid Studio自体(つまりはIntelliJベース)のビルダーが有効になります。たしかにコンパイルエラーが表示されるようにはなりますが,Android Studioが目指しているGradleビルダーが動かなくなるため,それ以外の不都合が生じました(たとえば,R.javaが更新されなくなるなどです⁠⁠。

極論を言えば「User external build」を無効にするのであれば,素直にIntelliJを使った方が良いです。

補足

6/14にリリースされたAndroid Studio v0.1.5では,Windows版もコンパイルエラーが表示されるようになりました。

図17 Windows版Android Studio v0.1.5ではコンパイルエラーが表示される

図17 Windows版Android Studio v0.1.5ではコンパイルエラーが表示される

[TIPS#4]build.gradleの編集にコード補完が効きません

一見,補完が効いているように見えますが,すでに記述しているキーワードを補完候補にあげているだけで,build.gradleの文脈に応じた補完は行っていません。

図18 build.gradleのコード補完の例

図18 build.gradle</code>のコード補完の例

あまり意味のない補完候補を出す(むしろ有害なのでは?)

Android Studio(のベースであるIntelliJ)はコード補完の的確さが売りのひとつなだけに,早くbuild.gradleのコード補完がサポートされることを望みます。

IntelliJを知っている人たちの中に「GroovyプラグインのGDSLで何とかなるのでは?」と思った人もいるでしょう。

しかし,IntelliJもAndroid Studioもまだbuild.gradle用のGDSLをプリセットしていません。インターネットを探すと自作のbuild.gdslを公開している人もいますが,それでもbuild.gradleを編集するのに十分とは言えませんでした。いずれ,今よりはマシな補完機能がつくと思いますので,気長に待ちましょう。

著者プロフィール

今井勝信(いまいまさのぶ)

システムエンジニア。日本ユニシス株式会社所属。仙台在住。

Android開発はまったくやったことがないけれどIntelliJ IDEAが大好き。

Twitter: @masanobuimai