2015年10月29日木曜日

Android Studioでモジュール単位のビルドが不安定?

いままでコードを変更するときの影響があまり出ないようにするため、単一プロジェクト、単一モジュールで作成していました。一番の利点はビルドするときに目に見えない影響がほぼないことでしょう。欠点としてはライブラリのようなコードが散在してしまい、管理上はよくありません。
そのため、ほぼ同じコードが存在する複数のプロジェクトを単一プロジェクトでモジュール化してまとめています。


モジュールライブラリ化によるコード的な違いは、一つのAPKパッケージ内でモジュールライブラリ化したjavaのパッケージ名が複数になってしまう(同じパッケージ名にしてもかまわないのかもしれない。ただ、リファクタリングなどの動作で悪影響がありそう。)ということでしょう。(それと今回の愚痴の点(笑))

同じコードを単純にライブラリモジュールとアプリモジュールに分けただけで、なぜかビルドサイズが(20kほど)増えてしまいます。
原因として考えられるのはいくつかありますが、影響が大きそうなのがproguard機能が正常に行われなくなっているのではないかというところです。

それを調べるにあたって色々とはまってしまったことがありました。

結局のところ、原因がはっきりしないまま一晩開け、build.gradleにcompile project()を追加してみたらたら、なぜかすんなりとビルドが通ってしまいました。
間接的に参照しているライブラリを追加しただけで、中間となるモジュールにしっかりと記述してあるのですが、そこが原因としか考えられず、試しに追加してみた訳です。
確認するため追加した行を削除してみたところビルドが通りました。えっ(笑)



昨日はビルドが失敗するので何度もクリーンや、同期やら行ってもうまく行かず、しまいにはビルド中にgradleの処理が終わらなくなったり、タイムアウトするようになったりしました。キャッシュのロックファイルが残ったままとなるなどかなり不可思議な現象になってしまいました。
何度かAndroid Studioを強制終了を行うこととなったりもしたので、PCのファイルシステムがおかしくなっている可能性もあります。(Windows 10 Preview版の罠かな?(笑))

gradleの特性上自動的にネットワークから必要なリソースを持ってきてしまうので、ネットワーク上の障害なのかもしれませんが、いやはや…この辺の不安定さはきつい。

0 件のコメント:

コメントを投稿