公開されているEclipseのマルチプロジェクトリソースをAndroidStudioで使う

 

ViewPagerIndicatorのサンプルを動かそうとして動かず。

ViewPagerIndicator

ViewPagerIndicator ViewPagerIndicator

Android-ViewPagerIndicator_sample_at_master_·_JakeWharton_Android-ViewPagerIndicator

JakeWharton/Android-ViewPagerIndicator JakeWharton/Android-ViewPagerIndicator

 

なんか似たようなこといつもやってる気がしてきたので、「マルチプロジェクト」についてのAndroidStudioの設定とか構成を確認して整理メモす。

 

参考は、汎用性のある以下公式ドキュメント。

Project Structure - Gradle Plugin User Guide

 

登場モジュール

メインモジュール: app
ライブラリモジュール: lib1/lib2

※ 「プロジェクト」を「モジュール」と呼ぶ。

 

Eclipse型ディレクトリ構成で考える

AndroidStudioで利用するときの。*印はAndroidStudio向き設定ファイル。

MyProject
 + local.properties *
 + settings.gradle *
 + build.gradle *
 + app/
    + build.gradle *
    + AndroidManifest.xml
    + libs/
    + src/
    + res/
    + assets/
 + libraries/
    + lib1/
       + build.gradle *
       + AndroidManifest.xml
       + libs/
       + src/
       + res/
       + assets/
    + lib2/
       + build.gradle
       + AndroidManifest.xml
       + libs/
       + src/
       + res/
       + assets/

 

MyProject/local.properties

SDK位置の指定。以下、Mac版AndroidStudioの場合。

sdk.dir=/Applications/Android Studio.app/sdk

 

MyProject/settings.gradle

そのプロジェクトに含まれるモジュールを記述。

include ':app', ':libraries:lib1', ':libraries:lib2'

 

MyProject/build.gradle

空ファイル。
親子入れ子にすることもできるようだが、ややこしいような気がする。

MyProject/app/build.gradle

Eclipseのディレクトリ構成を指定する。
ライブラリモジュールlib1/lib2への依存を記述。

...
apply plugin: 'android'

dependencies {
    ...
    compile project(':libraries:lib1')
    compile project(':libraries:lib2')
}

android {
    ...
    sourceSets {
        main {

            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
...

 

MyProject/app/libralies/lib1/build.gradle

上記同様にEclipseのディレクトリ構成を指定する。
ライブラリモジュールであることを記述。

...
apply plugin: 'android-library'
...
android {
    ...
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
...

 

で、ViewPagerIndicatorを

以上をふまえたプロジェクトディレクトリに対して、AndroidStudio上から「インポート」からで動く。

20131016-143142

20131016-143116

20131016-143058

20131016-143047

20131016-143030

20131016-142958

20131016-142942

20131016-142913

20131016-142853

20131016-142839

20131016-142824

20131016-142800

しかし、ページャのインジケータだけでもいろいろありすぎだな、これ。。

 

ちなみに、AndroidStudioデフォルトのディレクトリ構成

これ、デフォルト記述を明示させたほうが分かりやすくね?

MyProject
 + local.properties
 + settings.gradle
 + build.gradle
 + app/
     + build.gradle
     + libs/
     + src/
         + main/
             + java/
             + res/
             + assets/
             + AndroidManifest.xml
 + libraries/
    + lib1/
       + build.gradle
       + libs/            
       + src/
          + main/
             + java/
             + res/
             + assets/
             + AndroidManifest.xml
    ...

 

一度、整理してみるとドキュメントも簡単に見えながらの、毎度の「ドキュメントきちんと読め」。

Gradle Plugin User Guide - Android Tools Project Site Gradle Plugin User Guide - Android Tools Project Site


関連ワード:  AndroidAndroidStudioアプリライブラリ便利な設定初心者開発