Gradle( ´-ω-`)

複数のJava製SDK導入しての
UnityからのAndroidStudioプロジェクト書き出し。
ハマったことメモ。

Unity:2017.3.1p1 personal
AndroidStudio:3.0.1

・ライブラリの依存関係
v4 Support Library とかいう Android開発に便利なライブラリがあるらしく、
それが二つのSDKで使われており、かち合った。
じゃあ二つのうちひとつを読み込まないようにして解決だね、とバージョンを意識しつつ
片方を排除。…しても延々と依存関係エラーが。泥沼化。

この手の解決策として、
gradle の dependenciesコマンドにより依存関係ツリーを表示し、
重複しているライブラリを確認して exclude する。
…ということらしいが自分の場合 dependenciesコマンドでツリー表示されない。
かなり困惑した。なんで??(´・ω・`)
結論としては、dependenciesコマンドはリポジトリに対して機能するもので
手元にあるただの aarファイルに打っても依存ツリーは表示はされない。
依存関係やグループ名などを指定するファイル(pom)が必要…と今は理解している(`・ω・´)

依存ツリーが出ない理由は納得し、SDK付属のライブラリではなく
ネット上のリポジトリから拾って、必要に応じて excludeするようにしたり。してみたり。
しかし依然として、エラーが。そもそも重複するはずのないクラスが重複していると言われる。
ピンと来て、Mac+AndroidStudioの組み合わせでバグがあるのでは、と。
Windows端末を引っ張り出してきて環境構築&実験&結果は同じ&ピンと来たのなんだったの??(´・ω・`)
さらにピンときて、Unityのプロジェクトを新規に作り直し&実験&ビルド通過&ピンと来てたわ(`・ω・´)
どうも Unityの時点でおかしくなってたみたい。どうしようもないオチ。

・Gradleプラグインのバージョン
Unityプロジェクト作り直しの後でも、
Gradle plugin 3.0.1
Gradle 4.1
でやると依存関係がおかしくなった。
Build Valiants で依存関係詳細を確認すると、本来は2つしかない依存関係のプロジェクトが6つになっとる。
同じプロジェクトが3つに分身しとるがな…
Gradle plugin 2.3.0 にバージョンを落としたら上手く行った。

他にもあるけど、このへんで…
人の役には立つかどうか…メンゴメンゴ( ´-ω-`)