Cordova tips - plugin に .aar を含める方法
オレの Advent Calendar 2015 - Adventar の 21 日目です. Unity Ads の plugin を作っていてちょっと躓いたのでメモ
.aar とは
The 'aar' bundle is the binary distribution of an Android Library Project.
直訳すると, AAR バンドルは Android ライブラリプロジェクトのバイナリディストリビューションです. 的なことが書かれています.
まぁ要は Android のライブラリをまとめたファイルです. 中身はただの zip なので .aar を .zip に変更してダブルクリックすれば解凍して中身を見ることもできます.
.aar を cordova plugin に含めるには?
.aar を自分の Android プロジェクトで使う場合は, Android Studio でインポートすれば良いだけなので簡単です. ただ, cordova の plugin として作る場合はちょっと手間がかかります.
今回は, hoge.aar というファイルを plugin に含める方法を紹介したいと思います.
1. hoge.aar ファイルをプラグイン内に配置
android 専用になると思うので ./src/android/hoge.aar
という形で配置します.
2. plugin.xml に <resource-file />
を追加
plugin.xml の <platform name=android">~</platform>
に
<resource-file src="src/android/hoge.aar" target="libs/hoge.aar" />
これで, このプラグインを追加した際に, プラグイン内の src/android/hoge.aar
がプロジェクトの
libs/hoge.aar
としてコピーされます.
3. hoge.gradle
を作る
ただ aar を追加しただけでは何も起きません.
これをビルドするためにビルドファイル(.gradle)を作ります. 名前は hoge.gradle
とします.
hoge.gradle
repositories{
jcenter()
flatDir{
dirs 'libs'
}
}
dependencies {
compile(name:'unity-ads', ext:'aar')
}
android {
packagingOptions {
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
}
}
flatDir.dirs には aar のあるディレクトリ名を, compile の name には拡張子を取り除いた aar ファイル名, ext には拡張子をそれぞれ記述します.
これで, プロジェクトにプラグインを追加した際にビルドが走るようになります.