Hatena::ブログ(Diary)

_development, RSSフィード Twitter

2013-06-07

Android Gradle PluginでJsonPullParserを使う

Android Gradle Pluginで @作の JsonPullParser を使うためのbuild.gradleの記述方法です。


Android Gradle PluginはJavaプラグインが併用できないので、Javaの場合のAPTの記述が使えません。

Androidの場合はandroid.applicationVariants, またはandroid.libraryVariantsというエントリポイントを使うのが良いようです。


以下はAndroid Gradle PluginでJPPを使うための、android(Androidアプリケーション), android-library(Androidライブラリ)それぞれの記述方法です。


android の場合のbuild.gradle
buildscript {
    repositories {
        mavenCentral()
    }

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

apply plugin: 'android'

repositories {
    mavenCentral()
}

ext.jppVersion = '1.6.+';

configurations {
    apt
}

dependencies {
    compile "net.vvakame:jsonpullparser-core:${jppVersion}"
    apt "net.vvakame:jsonpullparser-apt:${jppVersion}"
}

android {
    compileSdkVersion 17
    buildToolsVersion "17"

    ...
}

android.applicationVariants.each { variant ->
    aptOutput = file("${project.buildDir}/source/apt_generated/${variant.dirName}")
    variant.javaCompile.doFirst {
        aptOutput.mkdirs()
        variant.javaCompile.options.compilerArgs += [
                '-processorpath', configurations.apt.getAsPath(),
                '-s', aptOutput
        ]
    }
}

android-library の場合のbuild.gradle

androidの場合のandroid.applicationVariantsとなっている箇所をandroid.libraryVariantsに変更します。

...

apply plugin: 'android-library'

...

android.libraryVariants.each { variant ->
    aptOutput = file("${project.buildDir}/source/apt_generated/${variant.dirName}")
    variant.javaCompile.doFirst {
        aptOutput.mkdirs()
        variant.javaCompile.options.compilerArgs += [
                '-processorpath', configurations.apt.getAsPath(),
                '-s', aptOutput
        ]
    }
}

追記

本エントリの書き方では、Build Variantsの切り替えが正しく動作しないので@zaki日記(2013-06-20) _ Android Studio でも apt が使い物になる build.gradle の書き方(暫定版) などを参照してください。


参考

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証