Android Studio で Volley を使う
以前、Android Studio で Volley を使う方法として 『一度 Eclipse にインポートして、build.gradle を生成しつつエクスポートするのが良さそう』 と書きました。
しかし、今ではもう build.gradle が Volley のプロジェクトに含まれていて上記記事の内容は古いので、改めて Android Studio で Volley を使う方法を書いておきます。 (ここに書いている方法は私が普段やっている方法です。 他にもっと良い方法があるかもしれません。)
前提知識
Android Studio を使ってアプリのビルドができて、ビルドツールとして Gradle が使われていることを知っていて、Git も普通に使える、ぐらいの知識を前提としています。
- Android Studio: Getting Started with Android Studio | Android Developers
- Gradle: Gradle - Build Automation Evolved
- Android Gradle プラグイン: New Build System - Android Tools Project Site
- Git: Git
Volley が何であるかということはここでは説明しません。
環境など
- Android Studio 0.3.0
- ビルドツールは Gradle 1.8 *1
- バージョン管理ツールとして Git を使用
- 対象とする Volley のコミットは c69c01be6ed (2013-10-23 時点での master ブランチの最新コミット)
Volley の扱い
- Volley は Git のサブモジュールとしてプロジェクトに追加する
- Gradle 上の扱いとしてはサブプロジェクトとする
プロジェクトに Volley を追加する
プロジェクトの構成
プロジェクトは既に存在するものとします。 プロジェクト名は仮に VolleySample としておきます。 Git での管理も既に行われているものとします。
プロジェクトの構成は、Android Studio で新規プロジェクトを作ったときの構成です。 (マルチプロジェクト構成です。) 一部のファイルとディレクトリの構成を示すと、次のようになっているはずです。
VolleySampleProject VolleySample — メインとなるサブプロジェクト build.bradle — サブプロジェクト :VolleySample のビルドスクリプト build.gradle — プロジェクト全体のビルドスクリプト settings.gradle — プロジェクトの設定ファイル
- 参考資料 (Gradle のマルチプロジェクトについて)
- 本家ドキュメント: Chapter 56. Multi-project Builds
- 和訳: 第56章 マルチプロジェクトのビルド
Git のサブモジュールとして Volley を追加する
プロジェクトのトップディレクトリで、Git コマンドを使ってサブモジュールとして Volley を追加します。
$ git submodule add https://android.googlesource.com/platform/frameworks/volley modules/volley
配置場所はどこでもいいのですが、今回は modules/volley に置くことにしました。
- 参考資料 (Git のサブモジュールについて): Git - サブモジュール
Volley を Gradle プロジェクトのサブプロジェクトにする
settings.gradle に 1 行追加して、modules/volley をサブプロジェクトとします。
include ':VolleySample' include ':modules:volley' // ← 追加
ビルドスクリプトを変更
最後に、ビルドスクリプトを変更してサブプロジェクト :modules:volley をビルドできるようにし、サブプロジェクト :VolleySample を :modules:volley に依存させます。
サブプロジェクト :modules:volley をビルドできるようにする
コミット c69c01be6ed 時点の Volley プロジェクトには build.gradle が入っているのですが、ビルドスクリプトの中にビルド時の依存関係が記述されていないので、このままではビルドできません。 ビルドできるようにするためにビルド時の依存関係を記述します。
サブモジュールの中の build.gradle はいじりたくないので、トップレベルのビルドスクリプトにサブモジュール用の記述を行います。
// Top-level build file where you can add configuration options common to all sub-projects/modules. /* * サブプロジェクト Volley 用のビルドスクリプト */ project(':modules:volley') { buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.6.+' } } }
- 参考資料 (ライブラリプロジェクト *2 用のビルドスクリプト): Gradle Plugin User Guide - Android Tools Project Site
サブプロジェクト :VolleySample を :modules:volley に依存させる
最後に、:VolleySample から :modules:volley への依存関係を記述します。
VolleySample/build.gradle の中の dependencies ブロックの中に、以下のように記述します。
dependencies { // ... (略) ... compile project(':modules:volley') // ← この行を追加する }
これでサブモジュール :VolleySample の中で Volley を使えるようになります。
- 参考資料 (ライブラリプロジェクトを参照する方法): Gradle Plugin User Guide - Android Tools Project Site