【Unity】ライブラリを作るときのGradle設定


Gradleは使ったことはあっても弄ったことはなかった。

便利なんだろうけど利用範囲が大きすぎてとっつきにくい感じがする。

Unityで使う用ライブラリで外部ライブラリを含めたりする方法のメモ。

 

Plugin2系(Gradle3系)とPlugin3系(Gradle4系)だとかなり違うみたいです。

dependencies だとこんな違いがある。

せっかくなので最新バージョンに合わせて考えてみます。

 

まず基本形はこんな感じにして、それぞれのオプションを足したり変えたりします。

 


 

Unityライブラリである classes.jar はコンパイルの時だけ使うようにする。

 

Unityライブラリ以外をlibsに入れて、それらは同封したい場合は別途excludeする。

transitiveは推移的な依存フラグ。default:trueで特にいじる意味はない。

あるいはこうでもいい。

ちなみにこれはダメだった。

 


 

外部のライブラリを libs に入れて、依存先を含むライブラリを作成する。

本来はこんな必要はないけど、Unity (Gradle不使用) で使うためのライブラリを作るならこんな感じで独立して動くようにしないといけない。

これで hoge.aar / libs / rxandroidble-1.4.3.aar みたいに配置されるわけだけど、中身が空になってしまう。ビルド自体は問題ないのになぜ。

これは上手い解決法がなかったので aar はそのまま出力してみる。

なんとなくすごい遠回りしてる気がする。

 

UnityでGradleを使ったビルドをしたほうが最終的には楽で最適化されたものができると思うけど、情報が少なすぎるのでしばらく保留します。

 

追記

ちょっとライブラリの構造が気になった。

でも RxJava なんかは他の外部ライブラリでも使われそうだし、重複チェックがしにくくなりそう。そもそもaar内にaar入れるのが可能なのか不明。

 

追記2

過去のバージョンだとaarファイルを読み込むのに新規モジュールを作ってImport Packageする必要があったみたいだけど、現在はlibsに入れるだけで使えてる。

どうやってるのかと調べてみるとaarがキャッシュで解凍されていた。

この辺の中からclasses.jarをとってきてリネームしてもいいかもしれない。

ただ調べてもこのパスの取得方法がわからなかった。

 


コメントを残す

メールアドレスが公開されることはありません。