gradle-android-toolkit+Android Studio (1)
普通ならAndroid Studioから「New Project」 -> 「New Module」でAndroidプロジェクトなりモジュールなりどんどん作成していくだけで良いと思うんだけれども、Android公式がサポートしているandroid-toolkitなgradle supportを使ってプロジェクト構成を作った場合なケースに関して検証してみた
構造は
├── app │ ├── build.gradle │ └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ │ └── sample │ │ └── test │ │ └── MainActivity.java │ └── res │ ├── drawable │ │ └── ic_launcher.png │ ├── layout │ │ └── main.xml │ └── values │ └── strings.xml ├── local.properties └── settings.gradle
っていうような構造を作る。
/settings.gradle
include ":app"
な記述をする。アプリプロジェクトなりライブラリプロジェクトなりをincludeすれば良い模様
/app/build.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath "com.android.tools.build:gradle:0.6.1"
}
}
apply plugin: "android"
configurations {
aaRuntime
}
repositories {
mavenCentral()
}
dependencies {
compile "com.googlecode.androidannotations:androidannotations-api:2.7.1"
aaRuntime "com.googlecode.androidannotations:androidannotations:2.7.1"
}
android {
compileSdkVersion 18
buildToolsVersion "18.1.1"
defaultConfig {
minSdkVersion 8
targetSdkVersion 18
}
applicationVariants.all { variant ->
variant.javaCompile.classpath += configurations.aaRuntime
variant.javaCompile.options.compilerArgs += [
"-AandroidManifestFile=" + variant.processResources.manifestFile
]
}
}
な感じで。あとはAndroid Studioにプロジェクトをインポートすれば良い。でそれをやると
っていう感じでappがアプリモジュールプロジェクトと認識される
ちなみにAndroid StudioにAndroidAnnotationsが処理するAPTなのを処理させるには、「File」 -> 「Settings」 -> 「Compiler」 -> 「Annotation Processors」っていう所を有効にしないとイケない模様。ちなみに設定ファイルな.idea/compiler.xml的には
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<option name="DEFAULT_COMPILER" value="Javac" />
<resourceExtensions />
<wildcardResourcePatterns>
<entry name="!?*.java" />
<entry name="!?*.form" />
<entry name="!?*.class" />
<entry name="!?*.groovy" />
<entry name="!?*.scala" />
<entry name="!?*.flex" />
<entry name="!?*.kt" />
<entry name="!?*.clj" />
</wildcardResourcePatterns>
<!-- ここかと思われる -->
<annotationProcessing>
<profile default="true" name="Default" enabled="true">
<processorPath useClasspath="true" />
</profile>
</annotationProcessing>
</component>
</project>
っていう設定が行われている模様。もしかしたらgradleなideaサポートでなんとか自動化出来るんじゃないのかなと
まだまだ検証すべき所があるのでネタとして続くかも
余談
この記事投稿時のAndroid Studioでダウンロードして動かしたバージョンだとインポートにあたってエラーが発生しアプリモジュールプロジェクトのインポートが正常に行われなかった。これはアップデートする事で解決できたのでインポートを行う前にアップデートをしておいた方が良いかと