The Pragmatic Ball boy

iOSを中心にやってる万年球拾いの老害エンジニアメモ

build.gradleからAndroidのバージョンベタ書きを避ける

Androidでgradleを使うと、デフォルトではこんな感じにバージョン情報がベタ書きで生成されます。

apply plugin: 'android'

android {
    compileSdkVersion 17
    buildToolsVersion "21.1.2"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 17
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }

build.gradle一つですむプロジェクトであれば、これでもよいかもですが、マルチプロジェクトにしている場合だと変更する場合にたくさん書き換えることとなりミスの元となります。

そこで以下のようにgradle.propertiesに切り分けておきます。

gradle.properties

ANDROID_BUILD_MIN_SDK_VERSION=9
ANDROID_BUILD_TARGET_SDK_VERSION=21
ANDROID_BUILD_TOOLS_VERSION=21.1.2
ANDROID_BUILD_SDK_VERSION=21

build.gradle

android {
    compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)
    buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION

    defaultConfig {
        minSdkVersion Integer.parseInt(project.ANDROID_BUILD_MIN_SDK_VERSION)
        targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
    }

参考

https://github.com/facebook/facebook-android-sdk/blob/master/gradle.properties

https://github.com/facebook/facebook-android-sdk/blob/master/facebook/build.gradle