はじめに
一部では 某戦記並みに「神を讃えよ」なRTが多発状態のG様の Android Studio ですが、
自分の開発環境で微妙な動きをしていたので備忘的なメモ
開発環境
Beta4にアップしたのですが・・・
- Beta3=>Beta4 アップデートした直後にビルドエラーが頻発*1
までしてやっとビルドが出来る状態。Beta3->Beta4 どこが軽微な修正なのかな?
久々に日本Androidの会MLを見たら平和だった pic.twitter.com/2XvcJOReYl
— すんでぶ (@ksksue) 2017年2月10日
確かに android studio 更新したての時、キャッシュ関連削除しないとかならずビルドエラーになるのは勘弁してほしいかな~
— close_yutori (@kimukou2628) 2017年2月13日
(.android/build-cashesは必ず物理削除が必要
一応下記のコマンドで ./gradlew cleanBuildCache はクリーン出来るようなんですが
./gradlew cleanBuildCache
これjavaのタスクが掴んでると消してくれないんですよね・・当たり前の挙動かもしれないんですがorz
InstantRunが3-4回実行するとOOMが発生
- Beta3までは問題なかった。複数プロジェクト開いてもOK
- Beta4だと1個のプロジェクトでこの状態
- アクティビティモニター見るとメモリがバカバカ増えているようなのでリークしているっぽい
- 下記当たりをすると再び実行出来るようになるが、最初からInstantRunビルドし直し・・・
gradlew –stopでdeamon終了
- jpsでみて gradlewタスク経由で実行されているjavaタスクを終了
一応 16G Mac 環境なんだけどな・・・
でもこのままリリースされてしまいそうな気もしなくもない・・
InstantRun切れば問題なくなるんですけどね*2
ReleaseNoteとかの話を見ると・・
- InstantRunでNDKがエラーになるのを対処したよ
- ConstraintLayoutがレイアウトエディターとかでちゃんとPreviewできるようにしたよ
- Android Things Developer Preview 2 とか対応したよ
あたりっぽいんだけど、公開されていない修正が裏でゴリゴリありそう
Build Cacheに関して
gradle.properties
android.enableBuildCache=true //定義していない場合はAS2.3からはデフォルトtrue android.buildCacheDir=$HOME/.android/build-cache //定義していない場合はこの位置
Macでメモリ上に仮想ディスク作るソフトとかあれば android.buildCacheDir をそこにおいて高速化
とかWindowsみたいなことできそうだけど、普通に探すとなさそうなのでSSD環境で開発するのが現実的なのかも
- android.enableBuildCache=false
- この状態にするとInstantRunが意味なくなるほど遅くなる
- で、たぶんこれInstantRunとセットの設定かと思う
あとこのビルドキャッシュの問題なのは、
- ビルドエラーがでた時に中途半端なビルドキャッシュ/参照を消したはずのlibraryが残るとずっとビルドが失敗する
- clean/rebuildしても駄目*3
ということかな。これ改善されない限りこの機能って出してはいけない機能な気がするんだけど気の所為?
このままリリースされるとしたら
とかな動作環境になりそう・・・
まあG様の開発は基本、最新のPCが会社から提供されるそうなのでまあ仕方ないのかもなーとか*4
おまけ
この話を仕事場のiOSエンジニアの方にしたところ
と突っ込み入れられましたorz
AS様は、97式みたいにベテランしか使いこなせない感じになっていくのかどうか
今後の状態を期待しつつ、次のバージョンを期待したいかも