Xamarin.Forms : アプリのターゲットをAndroid10にする
Android 10への対応を行わなければならないということ.そうだったのか...
- 2020/8/3以降 : 新規アプリはAndroid 10(API 29)以上を対象とする必要がある.
- 2020/11/2以降 : すべてのアプリのアップデートはAndroid 10(API 29)以上を対象とする必要がある.
なるほど.
コンパイルターゲットを変更する
ソリューションエクスプローラでAndroidプロジェクトで右クリックしてコンテキストメニューからプロパティを開いて,Application
で以下のようにCompile using Android version: (Target Framework)
をAndroid 10.0 (Q)
にする.
ターゲットAPIを変更する
引き続きAndroidプロジェクトのプロパティでAndroid Manifest
でTarget Android version:
という項目があるので,それをAndroid 10.0 (API Level 29 - Q
にする.
ビルドしたらエラーが出た
利用しているライブラリがXamarin.Android.Support.Compat
やXamarin.Android.v7.AppCompat
を必要だけど見つからない,ということなのでインストールする.
(20200715追記) どうやらこれはSyncfusionのライブラリがこれら必要としているため.
パッケージはAndroidプロジェクトだけにインストールすれば良いようだ.
Xamarin.Forms 4.5以降のアプリはここまででいいのかな?
Android Xに移行する
(注:Xamarin.Forms 4.7以降はAndroidXに対応しているので,特にすることはない)
James Montemagnoさんによると, Android10をターゲットにするならAndroidXライブラリへの移行も検討すべき,とのこと.
AndroidXライブラリは古いAndroidサポートライブラリを置き換えるもので,ターゲットをAndroid10にすると,Xamarin.FormsもXamarin.EssentialsもAndroidXを使うようになっている,とのこと.
何か作業する必要はあるのだろうか詳しくはこちら.
移行ツールを使う
Visual Studio 2019 Preview 16.5以上であること.
Visual StudioでTools > Options
を開く.
次にAndroid Settings
を検索する.
その中でEnable AndroidX Migrator(Experimental)
とあるので,チェックをつけて有効にする.Okボタンを押す.
ソリューションエクスプローラでAndroidプロジェクトを右クリックすると,コンテキストメニューにMigrate to AndroidX
という項目があるので,それをクリックする.
以下のような確認ダイアログが表示される.
「移行処理はキャンセルできないし,やり直しもできないけどいい?」
バックアップをとるなり,gitでコミットしておくなりして,対策してからYesを押す.