Android Studioで外部モジュールの読み込み

Android StudioでFaceBook SDKやその他外部ライブラリ読み込み時にはまりそうなところがあるので備忘録

*参考:http://sakebook.hatenablog.com/entry/2014/08/17/004540

ローカルにjarファイルをダウンローとして使う場合、appディレクトリ直下にlibsディレクトリを作ってそこにjarファイルを設置。/プロジェクト名/app/build.gradleに

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile files ('libs/ hoge-1.0.jar')
}

記述して「Sync Now」をクリックすればOK。

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:support-v4:21.0.+'
    compile 'com.android.support:appcompat-v7:21.0.0'
    compile 'com.google.android.gms:play-services:6.5.87'
}

だだ外部ライブラリなどの場合についてこのときいろいろハマりました。今回は例として「PagerSlidingTabStrip」の読み込みをします。(FaceBookSDKにしたほうがよかったかな・・・)

①ファイル > Import Module…
スクリーンショット 2015-01-09 23
②モジュールを指定。Module nameは「:PagerSlidingTabStrip」に設定スクリーンショット 2015-01-09 23③dependenciesに「com.astuetz:pagerslidingtabstrip:1.0.1」を追加して「Sync Now」

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:support-v4:21.0.+'
    compile 'com.android.support:appcompat-v7:21.0.0'
    compile 'com.google.android.gms:play-services:6.5.87'
    compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
}

④これで完了のはずだがこんなエラーがでる場合
「Could not find property ‘ANDROID_BUILD_SDK_VERSION’ on project ‘:PagerSlidingTabStrip’.」

この時点でプロジェクトディレクト直下にインポートしたPageSlidingTabStripモジュール(ライブラリ)がコピーされているはずなのでPageSlidingTabStripディレクトリ直下のgradle.propertiesを覗く。おそらく「ANDROID_BUILD_SDK_VERSION」などの設定がないと思うので以下のように編集して「Sync Now」または「Try Again」をクリック

POM_NAME=PagerSlidingTabStrip Library
POM_ARTIFACT_ID=pagerslidingtabstrip
POM_PACKAGING=aar
ANDROID_BUILD_TARGET_SDK_VERSION=19
ANDROID_BUILD_TOOLS_VERSION=19
ANDROID_BUILD_SDK_VERSION=19

⑤なお以下のようなエラーが出た場合
「No such property: GROUP for class: org.gradle.api.publication.maven.internal.ant.DefaultGroovyMavenDeployer」
原因は/プロジェクト/PagerSlidingTabStrip/build.gradleファイルにある
「apply from: ‘https://raw.github.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle’」
という一文。こちらをコメントアウトすれば良いらしい。(参考:http://konifar.com/1444)処理して「Sync Now」または「Try Again」をクリック

⑥それでも以下のようなエラーメッセージ
「The SDK Build Tools revision (19.0.0) is too low for project ‘:PagerSlidingTabStrip’. Minimum required is 19.1.0」
コンパイル時のSDKの下限のバージョンの設定らしい。よって④で編集した/プロジェクト/PagerSlidingTabStrip/gradle.propertiesを以下のように編集して「Sync Now」または「Try Again」をクリック

POM_NAME=PagerSlidingTabStrip Library
POM_ARTIFACT_ID=pagerslidingtabstrip
POM_PACKAGING=aar
ANDROID_BUILD_TARGET_SDK_VERSION=21
ANDROID_BUILD_TOOLS_VERSION=21
ANDROID_BUILD_SDK_VERSION=21

⑦たぶんこれでOKのハズ。メニューの「ファイル > プロジェクト構造…」でダイアログが表示されるので「Dependencies」タブを開いてインポートされているか確認
 スクリーンショット 2015-01-09 23.51⑧これで表示されていない場合、「Dependencies」タブの下側に「+」のボタンがあるのでクリック。「Module Dependency」を選択して登録したいライブラリを選択すればOK
スクリーンショット 2015-01-28 15.16