動作環境
(ところにより挫折して AS 2.3に戻ったりしています)
結論からいうと
Preview2までの目立ったバグは治っているんだけど、めちゃくちゃ不安定
- CPUが馬鹿食いするようになった
- メモリも馬鹿食い
触ってた状況
android studio 2.4 preview 3
— close_yutori (@kimukou2628) 2017年3月22日
ダメだこれ。layout previewが完全に死んだ。
cleanbuildcache
clean
プロジェクト作り直し全てしても駄目
初っ端がまずこれ。1時間ぐらい苦戦してた。
この時、IDEしか新しいの配布されていない状態。
Preview2のときと同じくIDEしか更新されないかと思ってました(爆
android studio 2.4 preview 3
— close_yutori (@kimukou2628) 2017年3月22日
icepickがprovided から annotaionProcesser
に指定を変えないとコンパイルエラー
このタイミングで、最新のgradle pluginも振ってきたわけですが
すると、pluginがGradle Syncでエラーを吐き出す。
公式だと icepick が providedで宣言しろって書いてるんですけど
dependencies { compile 'frankiesardo:icepick:3.2.0' provided 'frankiesardo:icepick-processor:3.2.0'//★ }
★の部分が AnnotationProcesser対象だろ=>Lintエラー
っていうわけわかんないエラーを吐いてくれます。宣言をエラーログどおりに修正
android studio 2.4 preview 3
— close_yutori (@kimukou2628) 2017年3月22日
grobalw tasksではもうrootのbuild.gradle記載のlibraryしか落さなくて
app/build.gradle のはassembleDebug時にですか、、
完全にoffline build殺し
gradlew tasks //実行
ライブラリをダウンロードしてくれず。
gradlew assembleDebug //実行
なぜか data-binding/icepick のライブラリがassembleDebugのタイミングでしかダウンロードされないんですよね。
多分 Gradle Syncの高速化の為に gradlew tasksでサブプロジェクトのライブラリ落とさないようにしたんだと思いますが、正直迷惑かなーと
New Gradle Sync の挙動
=> 変に状態をメモリキャッシュしているみたいandroid studio 2.4 preview 3
— close_yutori (@kimukou2628) 2017年3月22日
Gradle Syncの挙動が謎い
一回build通った後、gradle syncすると
icepick:3.2.0 が見つからないネットつなげという。
でproject閉じて開き直すとそれいわなくなる
android studio 2.4 preview 3
— close_yutori (@kimukou2628) 2017年3月22日
Gradle Syncって、一回エラーになると
rebuildし直すまでボタン押しても発行しなくなるみたいな作りに変わったみたいだな~
build済の情報を参照して頻発に着火しないような作りに変わったのかしら
android studio 2.4 preview 3
— close_yutori (@kimukou2628) 2017年3月22日
invalidate cache and restartした後に
gradlew --stop
android studioを完全終了して立上げ直し
でlayout previewやっと復活
(でも日本語は豆腐のまま
Preview2の時にどうもチェックを付けてしまったらしい。
その時は挙動の変化がなかったので、正に時限スイッチ><
android studio 2.4 preview 3
— close_yutori (@kimukou2628) 2017年3月22日
new Gradle Sync って二回実行しないと
indexが正常に出来ないみたいだけど
これproject依存なのかな?
android studio 2.4 preview 3
— close_yutori (@kimukou2628) 2017年3月22日
Gradle Syncの謎解い動きは
use new Gradle Syncのチェックが付いていたからっぽい。
外したら正常動作。
G様の(実験的)新機能怖いw
- New Gradle Sync は1個だけ利点はあって、
- clean/rebuild しても「HotSwapできるかもしれない接続状態が切れない」よう
Preview2 =>Preview3 の挙動変化
android studio 2.4 preview 3
— close_yutori (@kimukou2628) 2017年3月22日
今回はgrobal pluginも更新かかったので
databindingのguavaのdependencesが必要な件=>治った
instant run のduplicate resousce =>治った
と思ったけど、全然完治してない><。
でもまあ clean/rebuild が必須だった状況からは改善したかな・・
android studio 2.4 preview 3
— close_yutori (@kimukou2628) 2017年3月22日
duplicate resourceは偶に発生。ただinstant run再実行で消えるけど。
evalやlocal変数参照も復活したけど、偶にstep debugが効かなくなる(ASの再起動で復活しますが
しばらく動かしていた感じがこんな感じ。でずっと動かしていると重くなると。
- コード補完でIDEがガチに固まる
- キーを1個動かす度にカク、カクって感じになる
- InstantRunがまともに動かない
ただでさえ AS2.3から 下記の状態であるのに・・
しろやまさんがAS2.3でビルドにめっちゃ時間かかるって言ってたの「はは、大げさだなあ」と思ってたのですが、しろやまコマンドで1分30秒だったビルドが、AS2.3からのビルドだと5分かかったのでこれはやばい。https://t.co/WQ5dxfUw5v
— なかざん@糊 (@Nkzn) 2017年3月22日
正確にはこれログにでている時間だけの話しか話題にしていないけど、split.apkを複数入れるコマンドも結構時間かかっている気がする。
下手しなくても下記のほうが速い という
- assembleDebugでapk作って、
- adb push XXX.apk
- adb shell でlaunch
正直ストレスですわ・・まさに人柱版w*3
で更に謎いのは、
- InstantRunモード
- assembleDebugで作ったapkを転送した端末で手動でアプリ起動
debugプロセス接続ができない
AS 2.3だと
- 問題なくプロセス一覧表示されて接続できていたのに、
- preview1/2時点でのバグを直すのでなんか遣ったのかな?
TLメモ
Android Studio 2.3に上げて以降、Code Templatesが利かなくなった
— 義鷹 (@yoshitaka965) 2017年3月22日
その機能使っていないけど、メモ。でもG様も使ってないからテストしてないんじゃないかと
Android Studio、run設定では test/ のほうを実行するはずなのにIDE的には androidTest/ をみるようになってしまっているな。
— FUJI Goro (@__gfx__) 2017年3月22日
こういうよくわかんない固定パス仕様変更たまにあるよな・・
@__gfx__ 私は昨晩逆のことありましたねー。Android上では見えてることになってるのにGradleビルドすると見えないっていう。Android Studioごと入れ直したらなんか治りました(何の役にも立たない情報)
— なかざん@糊 (@Nkzn) 2017年3月22日
DataBindingでBindingのクラスが生成されない時に確認すべきこと by @konifar on @Qiita https://t.co/yQDgoyrHFl 本当にAndroid Studioごと入れ直したら直って最高に腑に落ちないけど、こにふぁーさんありがとう🙏
— なかざん@糊 (@Nkzn) 2017年3月22日
@konifar ついでにASとGradle Pluginを2.2.3から2.3に上げちゃったので、原因の切り分けがわけわかめになってるんですけどね😋
— なかざん@糊 (@Nkzn) 2017年3月22日
確かにdata-binding/apt が凄い不安定な気がする
AS 2.3 / 2.4 どちらも・・・
AndroidStudioでなんかおかしくなったら、次のどれかでだいたい直る気がする
— すたぜろ (@STAR_ZERO) 2017年3月22日
- File -> Invalidate Cache
- .gradleのディレクトリを消す
- $ ./gradlew clean --refresh-dependencies
確かに
gradlew clean --refresh-dependencies
以外はやっているかな・・。
でもInstantRun使っているときは上記だと強キャッシュが消えなくて
gradlew cleanBuildCache
は基本なのかも・・
Android Studio 2.2.3 -> 2.3にpatch経由でアップデートすると、adbが正常に機能しないので再インストールして2.3を直接起動すると良いという知見を得たので死んだ
— 川峠@Andriders (@eaglesakura) 2017年3月20日
android studio
— close_yutori (@kimukou2628) 2017年3月22日
なんかupdate patch がこの頃、雑になってる気がする。
確かに他の方が指摘するようにdmgフルで落としてきて、フル上書きすると変な挙動が収まる時がある。
うーん。リリース優先であんまテストしてないのかな?
AS 2.3-XX 系からパッチが凄い不安定な気がする。
正式版になったときも結局DMGでフル上書きしましたし・・
AS 2.4-Preview2 => Preview3もなんか挙動怪しいんだよな・・*5