mattak's blog

気の向くままに書く

Androidをgradleでビルドさせる

gradle

AndroidStudioが公開され、ビルドシステムはgradleに移行する感じの風潮で、皆注目してる。 世間の流れにおいていかれないように、gradleでandroidプロジェクトをビルドできるようにためす。。

とりあえず、以下を読みながら試す。

http://tools.android.com/tech-docs/new-build-system/user-guide

gradle のインストール

groovyのrvm的なバージョン管理のプログラムがあるので、落とす。

$ curl -s get.gvmtool.net | bash
$ source "$HOME/.gvm/bin/gvm-init.sh"

gradleのインストール

$ gvm install gradle 1.6 

プロジェクトの作成

とりあえず、既存のandroidコマンドでひな形を作る

$ android create project --target android-17 --path GradleSample --package me.mattak.gradle_sample --activity GradleSampleActivity --name GradleSample

antでビルドできるかチェック

$ cd GradleSample
$ ant debug install

gradleでビルド

以下を記述したbuild.gradleをAndroidManifest.xmlと同一のディレクトリにおく

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.4'
    }
}

apply plugin: 'android'

android {
    buildToolsVersion "17.0"
    compileSdkVersion 15

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aild.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        instrumentTest.setRoot('tests')
    }
}

これでbuildできるはず. task一覧をチェック

$ gradle tasks

デバックビルドする

$ gradle installDebug

これで、いちどうまくいかなかった。

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileDebugAidl'.
> failed to find Build Tools revision 17.0.0

ので、sdkを更新したらうまくいった。 http://stackoverflow.com/questions/16619773/failed-to-import-new-gradle-project-failed-to-find-build-tools-revision-17-0-0

$ android 
# Tools/Android SDK ToolsをRev. 22.0.1にする

やったね!