最近はandroidライブラリ(やテスト、果てはビルドそのもの)を、Gradleを使っての管理するのが一般的になってきたので、Gradle自体の操作を覚えつつ、現在ADTで作った各プロジェクトをGradleでもビルドできるようにしようと思いました。

最終的な目標まで行けてないので、とりあえず現状のメモを残していくことにします。

動作環境
Android SDK Tools 22.6.2
Android SDK Platform-tools 19.0.1
Android SDK Build-tools 19.0.3vi
JDK 1.7

手始めに、まず新規で作ったADTプロジェクトにGradleを入れて、ビルドまでやってみることにします。
いまのADTプロジェクトは、勝手にAppCompat(アクションバー)のライブラリプロジェクトを生成してくれて(こういうテストのときには)便利(だけど実際開発するときはめんどくさい)ですね。

というわけで、「AdtForGradle」というプロジェクトを新規作成して使います。

1. eclipse上でgradleファイルを作成する。
「エクスポート」>「Android」>「Generate Gradle build files」

d0252816_2159485.png


「次へ」でGradleファイルを生成したいプロジェクトの選択画面になるので、「AdtForGradle」にチェックを入れて「次へ」。

d0252816_2203295.png


関連するライブラリにもGradleファイルを作りますか?みたいな確認画面がでてくるので「完了」を押しましょう。

d0252816_2225298.png


d0252816_2234056.png


これで選択したプロジェクトとappcompat_v7(利用しているライブラリプロジェクト)にGradleファイルが出来上がります。

2. Gradleワラッパー一式をコピー
Android SDKが置いてあるディレクトリの「/tools/templates/gradle/wrapper/」以下にある
- gradle/
- gradlew
- gradlew.bat
の3つを、gradle.buildが置いてある階層に、コピーしてきます。
batの方はWin用なので不要なのですが、どの環境でも実行できるように、いちおう置いておきましょう。

3. パス設定
まずコマンドライン上でビルドできるように、JAVA_HOME、ANDROID_HOMEの環境変数を設定します。
JAVA_OPTSでファイルエンコーディング指定もいれておいたほうがいいかも。

# .bash_profile
export JAVA_HOME="/usr/lib/jvm/java-7-oracle"
export ANDROID_HOME="/home/yamacaft/adt-bundle_linux-x86/sdk”
export JAVA_OPTS="-Dgroovy.source.encoding=UTF-8 -Dfile.encoding=UTF-8"


4. コマンドライン上で実行
これであとはgradle.buildの置いてあるディレクトリに移動して

$ ./gradlew clean buildinstallDebug


といれると、プロジェクトがクリーンビルドされ、作成されたデバッグ用apkが端末にインストールされます。
プロジェクトにも、作成されたビルドファイル一式ができています。

d0252816_2264771.png


デフォルトの設定で「リリース用」なるapkもありますが、今回はビルドの話だけなので、無視します(署名がどうなってるかもわからないので)。

5. eclipse上から実行したい場合
いつも使う「実行」ボタンの右にある「外部ツールの実行」のプルダウン部分をクリック>「外部ツールの構成」を選択

d0252816_2291562.png


d0252816_2292470.png

※2枚目に出てるエラーは、ロケーションのところを誤字してミスってるだけなので無視してください。

左カラムにある新規作成アイコンをクリックして、キャプチャの通りに入力します。

-メイン-
名前:(お好きな様に)
ロケーション:${project_loc}/gradlew
作業ディレクトリー:${project_loc}
引数:--daemon ${string_prompt}

-環境-
(新規ボタンを押して以下の2つを追加)

変数:ANDROID_HOME
 値:(シェルで設定したANDROID_HOMEの値)

変数:JAVA_OPTS
 値:(シェルで設定したJAVA_OPTSの値)


これで保存した後に、ビルドしたいプロジェクトを選択したところで、「外部ツールの実行」を押すとビルドが開始されます。

d0252816_22104571.png


途中でこんな画面が出てきますが「clean build buildinstallDebug」と入力すれば、先ほどのコマンドライン上で実行したときと同じ結果になります。

とりあえずこれで、Gradleからでもビルドが出来るようになりました。

さらに自分は諸事情で、このまま「ADTで開発を進めつつ、Gradleでビルド」ということがしたいので、1で生成したGradleファイルのままだと、mavenやGitHubからライブラリが引っ張ってこれなかったりするので、中身を手直しする必要があります。

というわけでここからはまだ検証中なので解説できませんが、とりあえず現時点の内容(上記内容+ButterKnifeの追加)をGithubに公開しました。

yamacraft/Adt_project_for_Gradle

次はJenkinsでビルドするところに入るのか、テストを入れるのか、果ては開発方面に進むかのどれかで考えています。最終的には全部やる予定ではいます。

とりあえずここまで。
[PR]