見切り発車に近いような Android Studio 3.0 正式版
はじめに
とりあえず AS3.0 正式版が出たので検証。
期待してた Android Architecture Components の Room とかは rc1 だから思いっきり見切り発車だね。
AS3.1 で OS8.1対応に専念したい からもう出しちゃえ的な感じに受ける。。
なんていうか Android Studio 3.0はちょっとリリースまで時間かかりすぎてるし、一旦出しちゃうねって感じでリリースした感がある
— hidey (@hidey) 2017年10月26日
3.1で色々直るからそれ待ちみたいなのが結構ありそう
気のせいかも知らないがAndroid Studio 3.0 RC2の方が正式版より軽い感じがする。
— Pluu (@pluulove) 2017年10月26日
動作環境
- macOS Captain
- 4G
- SDDタイプのMacbook Pro
- AS 3.0
- gradle plugin 3.0
- gradle runtime-4.3-rc-3-bin
- Windows 10
- 8G
- AS 3.0 / AS 3.1-Canary1
- gradle plugin 2.3.3 / gradle plugin 3.0
- gradle runtime-4.1-bin
検証状況
日本語win版は 3.0正式版 な表記でしたね。家だと英語版表記で見てるからかなー*1Android Studio 3.0 正式版でたのはいいんだけど、Java9みたいなバージョニングなのは気の所為w
— close_yutori (@kimukou2628) 2017年10月25日
3.0.0.18 って・・。なんか日付合わせの見切り発車っぽい気もしないでもないhttps://t.co/AunZT6jJrn
相変わらず、日本語でアクセスするとバージョンが古くなる件 言語設定を一度日本語に切り替えて再度英語に戻したら無事3.1RC2がでてきた https://t.co/WXbnJ03aXB
— 松岡 謙治 (@kenz_firespeed) 2017年10月25日
Android Studio 3.0
— close_yutori (@kimukou2628) 2017年10月25日
とりあえず、support-library系が beta、RCがついてるのは怖くて使えない
というのが上の人の意見だったからココらへん外れたのがとりあえず今日落ちてくるのかな・・
Room とかやっと採用検討に入ってもらえるかも・・
Android Studio
— close_yutori (@kimukou2628) 2017年10月25日
昨日テスト書いてて、色々と設定変更してたけど
なかなか環境周りのエラーが取れなくて調べてたら
InstantRun offってても build-cacheを自動的に使っててなんだかなーとは感じてしまった
これ AndroidTest を移動 or コピーして改修して Robolectric にしてたりしてたんですが、中々しんどいですw(重複テストエラーとかでてワケワカンなかった・・・
Android Studio 3.0
— close_yutori (@kimukou2628) 2017年10月25日
* build tools 26.0.2 を強いられる
* google() レポ追加しないとビルドできない()
* offline チェック付けてるとGradleSyncが失敗(端末転送も不可)
あたりは仕様なのかな・・
gradle sync時に
- meta.pomをレポジトリから定期的にダウンロード
- ライブラリのsrc/javadoc.jar をSync時にダウンロードする仕様としてみたり。。。
Android Studio 3.0
— close_yutori (@kimukou2628) 2017年10月25日
local repositoryの更新は現在止まってて(これ古いの公式に置きたくないから?)
google()にしか support-library最新版が無い状況だから微妙(最新確認に gradle-versions-plugin 導入中
Android Studio 3.0
— close_yutori (@kimukou2628) 2017年10月25日
AS2.3.3 でいじってたプロジェクト開いたら
support-annotations の参照エラーが解決できず(これ AS2.3.3では問題なかったんだけど<汗
色々とバージョン変更しないと厳しそう。あとで作業しよう
GUI本体側のチェックが強化されてるのかなー。とりあえず exclude指定を追加しました
exclude group:'com.android.support' , module:'support-annotations'
Android Studio 3.0
— close_yutori (@kimukou2628) 2017年10月25日
3.0.0.18だと
* gradle plugin 2.3.3 のままでもInstantRun
* gradle plugin 3.0.0 に変更するだけで compile とかの指定のままOK
あたりはまだGUI制限かかってないみたい
Android Studio 3.0 にした途端プロジェクトがビルドできなくて焦ったが、どうもライブラリプロジェクトの方にもモジュールと同じ BuildTypes の定義がないとビルドできなくなった模様。
— コジオン (@kojionilk) 2017年10月25日
android studio 3.0
— close_yutori (@kimukou2628) 2017年10月25日
これbetaぐらいから入ってて、バグだと思ってたけど仕様化しちゃったのか、、
aarにして参照すれば一応この制限外せるけど、なんか微妙orzhttps://t.co/jeOlwRcPWC
android studio 3.0
— close_yutori (@kimukou2628) 2017年10月26日
3.1 Canary1の言及有ったけど
os8.1対応みたい
build tools 27.0.0
api 27
support library 27.0.0
一応3.0のsdk managerから落とせる
エミュレータ関係
これは確認しました。ちょっと前にEmuratorでProxyガチ環境で繋がらなくて悩んでました。 どうもこれ、設定するとAndroid Studio 3.0
— close_yutori (@kimukou2628) 2017年10月25日
リリースノート見てる。
エミュレータのPorxy設定がGUI上からできるようになったのね。早速今日試してみようhttps://t.co/0hMctIFZWV
- 直下のgradle.properties にプロクシ情報を記載する という挙動が正しいようです
- ただし、systemProp.http.proxyHost=XX のhttpしか書いてくれないのでエラー。
- systemProp.https.proxyHost=XX は手動で追加しましょう
Android Studio 3.0になって、またLinuxでAVDを起動したときにSSE4絡みのワーニングがガチャガチャ出るようになったけど、2.3.3でも出てたっけ?一旦修正されたような気がしたが・・・(記憶喪失)
— けいちゃ (@keicha_hrs) 2017年10月26日
これはASというよりはAndroid Emulatorというパッケージの問題だから、ASのバージョンは関係ないよな
— けいちゃ (@keicha_hrs) 2017年10月26日
確かになんかエミュおかしい。動かしてると謎のエラーログがWinでも出ることが有るんだけど・・
support-libraryの話
【Android Studio 3.0】
— 雨安 (@kisenonlight) 2017年10月31日
EmptyActivityのリリースapkのインストール後のアプリサイズの比較。
左:
サポートライブラリ有り
minifyEnabled false
右:
サポートライブラリ無し
minifyEnabled true
他の変更点無し pic.twitter.com/K6KxVG2rSm
確かにサイズでかすぎなんですよね。MultiDexの原因でもあるしさ・・
- support-library
- google-play-services/firebase
あたりが殆ど元凶だしな・・
android gradle plugin 3.0 の話
あるモジュール A で依存設定に `implementation` や `api` を指定した場合、モジュール A に依存するモジュールに対して依存関係が推移するかどうかが違うとのこと。 なるほど便利。https://t.co/4QtlpilntY
— Nobuoka Yu (@nobuoka) 2017年10月26日
まあ
> Gradle 3.4からapi/implementation , options.incremental = false がデフォ(5.0からtrue)
— close_yutori (@kimukou2628) 2017年10月22日
これ plugin 側対応してなかったから使えなかった話だったのかな?https://t.co/3PmNvgoVjU
らへんの話ですしね。現在のところ両対応してくれてるのは助かる
サードパーティライブラリ依存があって完全移行は出来ないからなー
検証状況(3.1 Canary1)
うーん。8.1の検証環境を正式リリースと切り離した感じなんでしょうね。
確かに build tools 27.0.0 にするとエラーが凄くてんこ盛りだし。。(汗
Android Studio 3.0 RC2から 3.0へ更新して "Kotlin not configured”が消えない
— 義鷹 (@yoshitaka965) 2017年10月26日
android studio 3.1 Canary1
— close_yutori (@kimukou2628) 2017年10月26日
うーん。kotlin使ってないプロジェクトで
3.1 Canary1にしたら、kotlin の同じエラーでるんだけど何だろう?https://t.co/82YUTGFarW
まずkotlin使ってないプロジェクトで kotlinエラー。AS2.3時代に戻った感じ。
正直やめて。。。
android studio 3.1 Canary1
— close_yutori (@kimukou2628) 2017年10月26日
compile sdk version /build tools
26 / 26.0.2
のままで
support libraryだけ 27.0.0にしたらエラー出してtest出来ないようにGUIブロック。27に揃えればok
- support library を27.0.0に
- build tools 27.0.0にあげろ
- あげたら versionのミックス環境ではテストが実施できません > Gradle Syncエラー >プロジェクト構成の破壊
Support Library 25.3.1 -> 27.0.0 していいかどうかの検証が辛い
— 竹内裕昭 (@takke) 2017年10月26日
うーん。support library とか build tools あげたらテスト系ライブラリが軒並みエラー出たからな。。
— close_yutori (@kimukou2628) 2017年10月26日
というか build tools 27.0.0 にしたらモジュールversionの混在>エラーにする仕様は正直どうなん?
(今日は血吐く思いしてましたよ
正確には、サードパーティライブラリにjunit依存/support-library依存 があってそれが干渉する
— close_yutori (@kimukou2628) 2017年10月26日
全部 27.0.0 指定しろや=>無理なので1個1個 exclude module ‘https://t.co/eEdoXS1hN5’ しまくって動作確認してた
TLメモ
TLメモ(一般)
Android Studioでコード補完にjavax.swingとか出てこなくする設定:
— Sosuke Masui (@esmasui) 2017年10月27日
Editor > General > Auto Import の Exclude from import and Completion に
javax.swing とかを追加する pic.twitter.com/AorHx3QyTz
はてなブログに投稿しました #はてなブログ
— ひさいち (@hisaichi5518) 2017年10月26日
minneをAndroid Studio 3.0に対応させた - パルカワ2https://t.co/uOBLK3L21R
しばらく調査時は3系、開発は2系ですすみそうだなぁ… https://t.co/7wzsORUfYy
— ぷなつしー@サイドPJもやる個人事業主 (@Pooh3Mobi) 2017年10月25日
遅くなりました。
— ぷなつしー@サイドPJもやる個人事業主 (@Pooh3Mobi) 2017年10月26日
ConstraintLayoutはやばコードにもなりえそうですが、上手くやればかなり有能ですね!
もうチームのノウハウの伸びがでていて、良さを噛み締めてます。
ConstraintLayout は AS 2.3ではまともに使えないので*6
仕方ないんだよね。あと android profilerもそうだし。
Device Exploler は正直あんまり使わないけど。。
Android SDK 27 、 Kotlin で書いてる部分の Nullable 判定色々変わっててすっごい書き換え必要\(^o^)/オワタ
— Ryutaro Miyashita (@ryugoo_) 2017年10月26日
具体的に何かあるわけじゃないんだけども、何となく気持ちが悪いので(ヽ'ω`)
— Ryutaro Miyashita (@ryugoo_) 2017年10月26日
kotlin使ってるプロジェクト、業務でまた触らなくなったけど
通常プロジェクトでも結構エラー出た*7。これ大幅に手を入れすぎちゃった系で
AS3.1も凄く長いんじゃないか臭がする*8
Android Gradle Plugin でincremental annotation processingが導入される予定があるのか。まだ入ってないとのことだけど楽しみだ
— zaki50 (@zaki50) 2017年10月26日
通信内容が丸見え!スゴすぎるAndroid Studio 3.0 のネットワークプロファイラ! https://t.co/MgRqqIHnPe
— おいでよ茨城(非公式) (@okuzawats) 2017年10月28日
うーん・Picassoって元々Okhttpだった気がするんだけど、
何でOkhttpDownloaderに差し替えないと駄目なんだろう?
Android Studio 3.0にアップデートしたらPagerSlidingTabStripがつかえなくなっちゃった
— ちびラボ (@chibilab) 2017年10月30日
Android Studio 3.0
— Keiji ARIYAMA (@keiji_ariyama) 2017年10月30日
なんかリファクタリング系のショートカット聞かないんだけど、Kotlinだから?
設定リセットしてみるかな。
これBetaの頃から kotlin化すると色んなショートカットが死ぬので
Kotlinファイル用のショートカットとJavaファイル用のショートカットと干渉してるのかなーとか?思ってました(爆
Android Studio の Firebase Assistant 便利やな! https://t.co/8ehY4qiCTu #android
— Nobuoka Yu (@nobuoka) 2017年10月31日
TLメモ(3.1 Canary1)
Android Studio 3.1 RC 1のレイアウトエディターで、GUI操作でLayoutを差し替える機能が追加されているけど、実際にやってみるとその上に乗っているパーツの配置は滅茶苦茶になる。正式版までには配置までコンバートできるようになるんだろうか?(無理そうな気が) pic.twitter.com/7Pfv8KqoZO
— けいちゃ (@keicha_hrs) 2017年10月29日
Android Studio 3.1 Canary 1 のビルドスピードがひどすぎる
— Pluu (@pluulove) 2017年10月29日
Indexing suspended (Gradle: sync) <-- このTaskが動くことでビルドがやばい。遅い…前より倍以上になった。
— Pluu (@pluulove) 2017年10月29日
雑だけど、格好いい感じ pic.twitter.com/ll1rcdofG2
— Pluu (@pluulove) 2017年10月30日
Android Studio 3.0から
— Pluu (@pluulove) 2017年10月30日
「transformClassesWithDesugarForXXXDebug」このタスクのせいで非常に遅くなる気がする。
TLメモ(テストライブラリ)
AS3.0でrobolectricテストがコケるのこれで直せた https://t.co/1kiOCcr74q
— kobakei (@kobakei122) 2017年10月26日
android { testOptions { unitTests { //2.3 <=>3.0 コンパチ対応 if(hasProperty('includeAndroidResources')){ includeAndroidResources = true } } } }
他のテストライブラリは、他のフラグ設定をしないと動かなかった記憶があり
そこら辺は後で追記する
TLメモ(keicha_hrsさん)
HAXM v6.2.0で割当最大メモリーサイズの設定は廃止されたのに、Android Studio 3.0からHAXMをインストールしようとすると前と変わらず設定ダイアログが出てくるのね。除き忘れたのか、廃止を知らなかったのか。
— けいちゃ (@keicha_hrs) 2017年10月29日
Android Studio 3.0でプロジェクトを新規作成すると、app/build.gradleにbuildToolsVersionの指定が入らないんだけど、これは意図的なのか不具合なのかどっちなんだ?
— けいちゃ (@keicha_hrs) 2017年10月29日
これでは、これからAndroid Studio 3.0をセットアップしてSDKもインストールすると、新規プロジェクト作成のGradleで絶対にコケるんじゃない?
— けいちゃ (@keicha_hrs) 2017年10月29日
(AS 3.0、他にもいろいろ問題ありそうだぞ。こりゃ早々に修正版を出さないとダメだな。)
— けいちゃ (@keicha_hrs) 2017年10月29日
やはり26.0.2強要っぽいのか
— けいちゃ (@keicha_hrs) 2017年10月29日
手入力でbuildToolsVersion入れてねテヘペロじゃあ、初心者には酷すぎるな
— けいちゃ (@keicha_hrs) 2017年10月29日
なんか
— けいちゃ (@keicha_hrs) 2017年10月29日
testImplementation 'junit:junit:4.12'
がどうしてもエラーになる現象に遭遇したんだけど、いつの間にか起きなくなって再現もできない
Android Studioには、内蔵のOpenJDKを更新する機能をつけるつもりはないんだろうか?3.0で今現在の最新のOpenJDK 8 Update 152にはなっているけど。
— けいちゃ (@keicha_hrs) 2017年10月30日
Android Studio 3.0が32bit版Windows非対応だというツイートがちらほら見られて、そんなはずはと思って調べてみたら、インストーラーの不備が招いた誤解っぽいなあ。ちゃんと対応してますよ。動かすのはメモリー的にかなり辛いけど。
— けいちゃ (@keicha_hrs) 2017年10月31日
Windows版のインストーラーから導入すると、ショートカットは32bit版の実行ファイルを指してくれるのに、導入されるOpenJDKが64bit版だけだから、まず起動で引っ掛かり、次にビルドで引っ掛かりの二重苦状態になってしまうね。
— けいちゃ (@keicha_hrs) 2017年10月31日
3.0のBuild-tools決め打ち問題もあるから、三重苦かw
— けいちゃ (@keicha_hrs) 2017年10月31日
インストーラーの不備は以前からだよね。これもGoogle先生は改善する気はないのかね。OpenJDKをインストーラーに格納するのではなく、インストールの過程でアーキテクチャにあったものをダウンロードするようにするとかすれば済みそうな気もするんだが。
— けいちゃ (@keicha_hrs) 2017年10月31日
まあ、そこまでして今さら32bit版Windowsをカバーする必要性も薄いとは思うんだけど、なまじインストールが正常完了してしまうのが不幸なのであって。やる気ないなら、いっそのことインストーラーを32bit非対応にすれば。
— けいちゃ (@keicha_hrs) 2017年10月31日
TLメモ(takkeさん)
Android Studio 3.0 のインストールから始めている
— 竹内裕昭 (@takke) 2017年10月26日
outputFile の移行方法から思い出さねば。
— 竹内裕昭 (@takke) 2017年10月26日
なんか @ android:windowEnterAnimation がないって言われたんで @ 消す作業してたんだけど古い書き方なのかな。
— 竹内裕昭 (@takke) 2017年10月26日
なんか @ android:windowEnterAnimation がないって言われたんで @ 消す作業してたんだけど古い書き方なのかな。
— 竹内裕昭 (@takke) 2017年10月26日
resDir が無くなったのはどうすりゃいいのか
— 竹内裕昭 (@takke) 2017年10月26日
以前試した方式では諦めて shortcuts.xml を flavor 毎に作成するようにしてたけど TwitPane の flavor いくつあると思ってるんだ https://t.co/iuXUhXlirx
— 竹内裕昭 (@takke) 2017年10月26日
改めて確認すると "Won't Fix" になってるし絶望しかない // Manifest shortcut targetPackage is not parsing strings https://t.co/Yd9yawfbkz
— 竹内裕昭 (@takke) 2017年10月26日
Gradle の高速化のために resDir みたいなものを readOnly にしまくってたのは理解できるし仕方ないか。うーん。
— 竹内裕昭 (@takke) 2017年10月26日
覚えておく // AndroidStudio3.0 (IntelliJ)で、メソッド引数のヒント表示をOFFにする方法 - Qiita https://t.co/QwLwzeg6xs
— 竹内裕昭 (@takke) 2017年10月26日
Android Studio 3.0 で実機で実行できるようになってた(Canary 3ではエラー多すぎて諦めてた)のですごい進歩なんだけど versionCode が意図していないものになってる風
— 竹内裕昭 (@takke) 2017年10月26日
freeDebug flavor を実行してるのに premium.debug になってしまうな。gradle の applicationId の解釈というか走査順序変わったっぽいな。 pic.twitter.com/Qb7PoUXWtf
— 竹内裕昭 (@takke) 2017年10月26日
gradle 新しくなって intermediates/res の中間ファイル、すっかり無くなったというか、xml/shortcuts.xml が xml_shortcuts.xml.flat とかいうバイナリファイルになっちまった。
— 竹内裕昭 (@takke) 2017年10月26日
flavorDimensions による applicationId の解釈順序が変わったやつ、スマートな解決策が分からないな。free/kindle/premium で premium だけは modern/classic で共有してたけど classic 用に作らないとダメか
— 竹内裕昭 (@takke) 2017年10月26日
flavor の classic の代わりの名前考えていて modern の反対ってことで調べて結局 old に落ち着いた https://t.co/rNcFsZjXST
— 竹内裕昭 (@takke) 2017年10月26日
フルビルドに以前は 2.5 分くらいで終わってたと思うんだけど AS3.0 にしたら 8.5 分くらいかかるようになってしまった。うーん。
— 竹内裕昭 (@takke) 2017年10月26日
ありがとうございます!試してみましたがほぼ変わらなかったです。ほとんどの時間が proguard に費やされてるようなので proguard 周りを弄らないとダメっぽい気がしてきました。
— 竹内裕昭 (@takke) 2017年10月26日
うーん。proguardの高速化は確かに無理だよな。。
らへんとか対応すれば出来るんだろうか。。
実際に APK のタイムスタンプ見たら AS2.3 では 2.5 分くらいで終わってた。AS3.0 は 8.5 分ちょい。APK ちょっと小さくなってるから我慢するか。
— 竹内裕昭 (@takke) 2017年10月26日
performance log ってのは他の log 出力が原因で遅くなるものを計っても仕方ないので info と debug の中間くらいなんだよな
— 竹内裕昭 (@takke) 2017年10月26日
自作アプリがデバッグモードで遅すぎるのでデバッグ切ったら本当に遅い原因が分からなくなったので perf log が必要そう
— 竹内裕昭 (@takke) 2017年10月26日
APK生成が遅い件、改めて --profile 取ってみたらやっぱり proguard がすげー遅くなってた。 pic.twitter.com/9tzPrgi5HW
— 竹内裕昭 (@takke) 2017年10月27日
誰だよ、AS3.0はビルドが速いなんて言ったのは。
— 竹内裕昭 (@takke) 2017年10月30日
TLメモ(takkeさん)-27.0.0
Support Library 25.3.1 -> 27.0.0 していいかどうかの検証が辛い
— 竹内裕昭 (@takke) 2017年10月26日
動かして確かめるにしても Android 2.3 端末を引っ張り出すのがしんどそう
— 竹内裕昭 (@takke) 2017年10月26日
そもそも Support Library 27.0.0 は 2.3 非対応なので edition 毎に分けるようにもっとゴニョゴニョする必要がある
— 竹内裕昭 (@takke) 2017年10月26日
AS3.0で各FlavorのAPK全部作れて、Shift+F10で実機実行できて、Ctrl+F10でInstantRunも動作したので進捗あった
— 竹内裕昭 (@takke) 2017年10月26日
明らかにレイアウト崩れてる pic.twitter.com/bHooqhZwxu
— 竹内裕昭 (@takke) 2017年10月26日
サポート ライブラリ 27.0.0 から、Fragment の Transition にサポート ライブラリ版の Transition を使えるようになりました。KitKat 以前の端末でも Transition を使って画面遷移のアニメーションを作ることができます。
— Yuichi Araki (@yuichi_araki) 2017年10月26日
DragSortListViewがSupport Library 27.0.0で色々エラーになるのでUIだけ同じにしてRecyclerView+ItemTouchHelperで再実装するべきか
— 竹内裕昭 (@takke) 2017年10月26日
ConstraintLayout 1.1 beta1 から beta2 にしてレイアウト崩れたんだけど直したつもりが直ってなかった
— 竹内裕昭 (@takke) 2017年10月26日
android:background="?android:attr/selectableItemBackground" 便利だね(いまさら)
— 竹内裕昭 (@takke) 2017年10月27日
タブカスタマイズ画面をようやくRecyclerViewで作り直せた。D&Dは未実装。 pic.twitter.com/ZseTlepPrN
— 竹内裕昭 (@takke) 2017年10月27日