Visual Studio 2017 Version 15.2 にアップデートしたら Xamarin.Forms の Android アプリがすごい遅くなったから回避した
============================================
2017/5/31 追記
Visual Studio 2017 version 15.2 (26430.12) で対応されたようです。
>Fixed a performance dedgration sometimes occuring in Xamairn Android apps.
Visual Studio 2017 Release Notes
============================================
============================================
2017/5/25 追記
Mac、VS 2015 は対応されたようです。
Stable Release: 15.2.2 Servicing Release | Xamarin Releases
2017 はまだかな…
============================================
============================================
2017/5/17 追記
下記手順を行うと Android の Release ビルドで作成したアプリがうまく動かなくなります。
Debug 時の回避手段とお考え下さい。
============================================
※この記事の手順は自己責任でお願いします。
タイトルの通りです。
Xamairn.Forms、Prism(Unity) で作成した Android アプリがなんか InitializeComponent で数秒かかる感じに遅くなったんです。
Android 4.4では発生せず、6.0、7.0で現象を確認できました。
環境は以下の通り。
- Windows 10 Pro Creators Update (バージョン1703、ビルド15063)
- Visual Studio 2017 Version 15.2 (26430.4)
- Xamarin 4.5.0.443
- Xamarin.Android.SDK 7.3.0.13
色々皆さんのご協力をいただき、対症療法的に回避しました。
調べていると下記 bugzilla がヒットしてみんな Xamarin.Android 7.3 が原因っぽいことを言っています。
56240 – Performance Degradation When Using Expressions
ということで Xamarin.Android を前のバージョンにダウングレードしたいと思います。
下記サイトから以前の Xamarin インストーラー(4.4)をダウンロードしてきます。
※ Xamarin のアカウントが必要です。
https://store.xamarin.com/account/my/subscription/downloads
ダウンロードした Xamarin インストーラーを起動します。
※この時点で Build Tools 2015 が必要です。みたいなことを言われたらインストールしてください。
Download Microsoft Build Tools 2015 from Official Microsoft Download Center
実際に VisualStudio で使用している Xamarin.Android のフォルダーをリネーム(バックアップ)して先ほどのファイルを丸ごと持ってきます。
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Xamarin
以上で終了です。
Visual Studio を起動して出力の Xamarin Diagnostics に以下のように 7.2 だよー的なのが出ていれば成功です。
早くなりました。
Prism との組み合わせなのかなー。すぐ修正されるといいなぁ。
以下、みなさんのご協力
Xamarin.Forms製アプリのAndroidがここ一週間ぐらいで急に画面遷移がスゴい重くなったんだけど、なにが原因なのだろうか…
— SHUNSUKE_KAWAI (@_shunsuke_kawai) 2017年5月15日
同じ現象を @qwerty2501 さんが言ってました、なにが原因なんだろ?
— Daiki Kawanuma (@Santea3173) 2017年5月15日
Daiki Kawanuma (@Santea3173) | Twitter
さんが
クワーティ (@qwerty2501) | Twitter
さんも悩んでいたことを教えてくれて
windows creators updateにしたのが原因かなと思ってるんですがどうでしょう
— クワーティ (@qwerty2501) 2017年5月15日
色々試した結果、VSTSで自動ビルドしたヤツは早く動く、しばらく放置していたVS2015(Xamarin 4.2.1.62)でビルドしたヤツも早く動く。
— SHUNSUKE_KAWAI (@_shunsuke_kawai) 2017年5月15日
そうですね…なんで世間で騒がれてないんだろう…Prismとの組み合わせとかなのかな…
— SHUNSUKE_KAWAI (@_shunsuke_kawai) 2017年5月15日
VS for Macでも発生してる気がします…
— かむ (@muak_x) 2017年5月15日
画面遷移では初めて開くPageが異様に重くて2回目以降はまだマシな感じな動きです。
かむ (@muak_x) | Twitter
さんも参戦し
これっぽいですねぇhttps://t.co/hdikxAbeWo
— SHUNSUKE_KAWAI (@_shunsuke_kawai) 2017年5月15日
バックアップからの復元でなら戻せると思います。が今場所がどこかわからず探しています。
— かむ (@muak_x) 2017年5月15日
XAをロールバックするにはMacの場合
— かむ (@muak_x) 2017年5月15日
/Library/Frameworks
にあるhttps://t.co/ppzUuqJ8JM.frameworkを丸ごとバックアップに差し替えたら行けました。 https://t.co/Zy0fSNpzG3
Mac 版はサクッと解決してくれたので
https://t.co/7tD0jLtykJだけダウングレードできた! pic.twitter.com/GEbgVdc26b
— SHUNSUKE_KAWAI (@_shunsuke_kawai) 2017年5月15日
バックアップいらんとです!
— SHUNSUKE_KAWAI (@_shunsuke_kawai) 2017年5月15日
こっからダウンロードしてくれば。https://t.co/6i5Mx0HUCc
参考にして Windows も回避です。