Android Studio 0.1.3 - 0.1.9で もっと簡単にGoogle Play servicesを含んだGradleベースの新規プロジェクトを作る方法
2013/07/12追記
Android Studio 0.2.0-0.2.3でGoogle Play Servicesを使う新規プロジェクトを作る - sos の 作業メモ
0.2.0以降用の記事を書きました。
2013/07/03追記
0.1.9でも問題ありませんでした
2013/06/28追記
0.1.8の記事でも書きましたが、0.1.7でのバグは修正されています。"Sync Project with Gradle Files"もちゃんと機能するようになってるし、これでgradlewの出番もちょっと減るかも?
あと、プロジェクトのbuild.gradleはデフォルトのままで大丈夫っぽいので、下の説明からばっさり削除しました。
2013/06/26追記
0.1.7がリリースされた記事でも書きましたが、0.1.7で新規プロジェクトを作って、Google Play services等の使用をbuild.gradleに宣言し、./gradlew clean buildで aar等を生成し、Android StudioでbuildしようとするとBuildConfig.javaや R.java等が重複というエラーが発生して失敗するようになります。
0.1.6で作ったプロジェクトを0.1.7のAndroid Studio上でbuildするのは問題ありませんので、(./gradlew clean buildしてもOK)、しばらくは0.1.6も残しておいて、新規プロジェクトはこちらで作るようにした方が安全のようです。
2013/06/22追記
0.1.6でも新規プロジェクト作成から Google Play servicesと、自作のライブラリプロジェクトを含んだGradleベースのプロジェクトを問題なく作成できるのを確認しました。
自作ライブラリプロジェクトの組み込み方法は、以前の記事そのままですが、もうちょっと落ち着いたらまとめたいところ。syncボタンでaarを認識してくれますし、aarよりlibプロジェクトの優先順位をあげればソース表示もちゃんとそっちへ飛ぶしで今の所不自由はなし。
ウィザードとかもだんだん賢くなっていて嬉しい限りですね。
以下本文
以前の記事の方法でもいけるのですが、 こちらの記事でも書いたように、 せっかくGoogle Play servicesの組み込みが簡単になったことですし、これからは新しい方法でやっていきましょう。
といっても、そんなに身構えなくても大丈夫、ちょろっとbuild.gradleの書き方が変わったのと、settings.gradleの記述やProject Structureでの依存関係の設定が不要になった位です。
以下は全て Mac OS X 10.8の環境を前提としています。
新規プロジェクト作成
いつもの画面です。 アプリ名、アプリモジュール名、パッケージ名、プロジェクトの保存先、SDKのバージョン等を入力します。アプリモジュール名 + 'Project'がデフォルトのプロジェクトフォルダになります。
あとは適当にnextを押していってプロジェクトを作成。
この段階でRunすると、Hello Worldなアプリが動きます。
Android SDK Managerで2つのRepositoryをインストール
Android Support Repositoryと Google Repositoryをまだインストールしていない場合は、 Android SDK Managerを起動して、これらを追加してください
Gradle関係
Android用の新しいビルドシステムに採用されたGradleは、build.gradleというファイルの内容に従ってビルドを行います。(要するにビルド用のスクリプトファイルと思えばいいらしい)
build.gradleは、プロジェクトやアプリモジュール、ライブラリモジュール、それぞれに必要ですので、ここからはそれらの設定を行います。
プロジェクトのbuild.gradle
特に編集しなくても大丈夫です。
アプリモジュールのbuild.gradle
アプリモジュール本体のbuild.gradleを設定します。
[/MyStudioApp/build.gradle]
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
dependencies {
compile 'com.google.android.gms:play-services:3.1.36'
compile 'com.android.support:support-v4:13.0.0'
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 8
targetSdkVersion 17
}
}
ここでの肝は dependenciesの中。 ADT r22で追加された、Google Play servicesとSupport Libraryのリポジトリからライブラリを探すように指定します。IDEA側の依存関係の面倒もplug-inが自動的に見てくれますので、ProjectStructureを自分で設定する手間が減っています。 (ソースやJavaDocを追加するためにはやっぱり手作業が必要になったりもしますが、詳しくは過去のこの辺の記事を参照してください)
.bash_profile
JDK6はデフォルトがSJISですので、環境変数の_JAVA_OPTIONSを使ってUTF-8として解釈するように設定しておきます。
[~/.bash_profile]
export _JAVA_OPTIONS='-Dfile.encoding=UTF-8 -Dgroovy.source.encoding=UTF-8'
こうしておけばOKです。idea.vmoptionsとJAVA_OPTSを使ったりする方法もあるのですが、AndroidStudioとgradlew両方を一つで済ませたいのでこれにしています。
Sync Project with Gradle Files
Gradle関係のファイルを編集しましたので、AndroidStudioにいろいろと再構築させるために Sync Project with Gradle Files ボタンを押します。
別の方法としては、ターミナルから gradlewでビルドする方法もあります。 ターミナルを開いて、プロジェクトのフォルダに移動して、
$ ./gradlew clean build
と入力してやれば、リビルドされます。リビルドしたら一旦AndroidStudioを再起動してやってください。
0.1.7まではSyncボタンがいまいち信用できなかったのですが、0.1.8からはすっかり大丈夫になったっぽいです。とはいえ、gradlewでの扱いも知っておいて損はないと思いますので、なにか問題が起きたら ./gradlew clean build して Android Studioを再起動ってのは覚えておいて損はないかも。
コーディング開始
ここまでくればあとは自由。好きにコーディングを初めてください。 他のライブラリプロジェクトを追加する場合は、以前の記事の ライブラリ追加(settings.gradleやアプリモジュールのdependencies)の手順が使えます。