Gradle のためのツール更新

ADT を 22 にする事に。既知の発生し得る不具合 (?) は以下とのこと。

  • SDK Build Tool を導入しないとパケジの Build ができない
  • libs に jar を入れて参照してる場合、Build Path の設定変更の必要あり
    • Order & Export タブにて Private Libraries のチェックを入れる

後は大丈夫なのかしらん。とりあえずヤッてみます。

ADT 22 に update

  • Help -> Check For Update

で、No updates were found. って言われる。StackOverflow によれば Install から云々とありますね。これって一式全部なソレだったからなのかどうなのか。
NDK Plugins 含め 22.2.1 というソレを導入着手。合間を見つつ MBA もなのかどうか。
で、導入終わったら Eclipse 再起動して SDK を update なのか。

SDK 更新

再起動したら親切にダイアログが出てきた。ので、SDK Manager から SDK Tools を更新。更新終了後に Android plug-in の更新があるかどうかについて確認せよ、とダイアログが出てますがここでも No updates were found. でした。

ここから

branch して Gradle を云々してみます。とりあえず

$ brew install gradle

して File -> Export から Android/Generate Gradle build files を選択。対象プロジェクトを選択して作成さあれました。Export なダイアログ (というか wizard?) の最後で以下な記述あり。

Choose 'import project' in Android Studio
and select the following file:
     /Users/yamanetoshi/dev/fugahoge/build.gradle

Do NOT import the Eclipse project itself!


とのこと。むむむ。とりあえず未だ Android Studio で云々する予定は無いのでスルー。出力されたのは以下な模様。

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5+'
    }
}
apply plugin: 'android'

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

android {
    compileSdkVersion 15
    buildToolsVersion "18.1.1"

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

        // Move the tests to tests/java, tests/res, etc...
        instrumentTest.setRoot('tests')

        // Move the build types to build-types/<type>
        // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
        // This moves them out of them default location under src/<type>/... which would
        // conflict with src/ being used by the main source set.
        // Adding new build typesor product flavers should be accompanied
        // by a similar customization.
        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }
}

で、Run -> External Tools -> External Tools Configurations を選択して左ペインの Program を右クリックして New を選択し

  • Name は GradleBuild とか
  • Location は /usr/local/bin/gradle
  • Working Directory は ${project_loc} (Variables から選択)
  • Arguments は --daemon 入力して ${string_prompt} (Variables から選択)

して Environment タブで

  • ANDROID_HOME は SDK 導入ディレクトリ
  • JAVA_OPTS は -Dgroovy.source.encoding=UTF-8 -Dfile.encoding=UTF-8 を入力

したら保存して close するのか。

実行

結局さっきの実行構成だして Run だったのですが、署名ってどうなってるのかな。一応 BUILD SUCCESSFUL と出ました。で、build/apk の中身を見てみるに *-{debug, relase}-unsigned.apk というファイルが出力されてます。これは署名な設定を build.gradle に追加しなきゃ、なのですね。
以下を追加、なのかどうか。

    signingConfigs {
        debug {
            storeFile file("debug.keystore")
        }

        myConfig
    }
    if (project.hasProperty('storeFile')) {
        android.signingConfigs.myConfig.storeFile = file(storeFile)
    }
    if (project.hasProperty('storePassword')) {
        android.signingConfigs.myConfig.storePassword = storePassword
    }
    if (project.hasProperty('keyAlias')) {
        android.signingConfigs.myConfig.keyAlias = keyAlias
    }
    if (project.hasProperty('keyPassword')) {
        android.signingConfigs.myConfig.keyPassword = keyPassword
    }
    
    buildTypes {
        debug {
            signingConfig siginingConfigs.debug
        }
        release {
            signingConfig signingConfigs.myConfig
        }
    }

これ、gradle.properties というファイルを追加して以下なカンジにしておいて .gitignore に記述を追加しておくと良いみたい。

storeFile=xxx.keystore
storePassword=example
keyAlias=example
keyPassword=example

とは言え、当座は assembleDebug しない方向ですが。上記を盛り込んで

$ gradle aR

でどうなるか、確認してみたいと思います。何かあれば追記の方向で。

追記

storeFile は自動で ~/.android 配下を探してくれる訳ではないみたいです。絶対パスで記述しないと駄目みたい。build/apk 配下にも unaligned ではない .apk が出てきてます。
つうかこれ、とりあえず

  • build.gradle
  • gradle.properties

のみ追加、ってことで良いのかな。branch を push して MBA で同じ事をしてみる方向。

batch 実行してみた

以下で。

$ export ANDROID_HOME=/Users/yamanetoshi/dev/android/sdk
$ export JAVA_OPTS="-Dgroovy.source.encoding=UTF-8 -Dfile.encoding=UTF-8"
$ gradle clean aR

BUILD SUCCESSFUL と出ました。すばら。

update について補足

install new software から出てくるソレで Android Developer Tools Update Site という選択肢があることを今確認してます。だったら update 見つけてくれよ、って思うのですがこのあたりどうなのだろうか。

デフォルトで持ってる設定エントリだと ADT の取得に失敗します。やはり何らかの不具合があって No updates were found. だったのだな。

もうひとつ

某所向けに GitHub に情報纏めてみました。

もう少しリファインしてみる方向。