Contents
Xamarinアプリを.NET MAUIに移行中、そもそも起動できなくなったり、途中でクラッシュすることがあったので、メモしておく。
イベントのBeginInvoke(context, intent, null, null)
コンパイルエラーにはならないんだけど、実行すると吹っ飛ぶ。
こちらを参照。
https://learn.microsoft.com/ja-jp/dotnet/core/porting/net-framework-tech-unavailable
https://devblogs.microsoft.com/dotnet/migrating-delegate-begininvoke-calls-for-net-core/
Task.Run(() => { イベント名?.Invoke(context, intent); });に置き換えるだけ。
アプリのストレージを削除すると起動できなくなる
これはDebug版だけで起こる。
「Fast Deployment の使用」を無効にするか、一度アンインストールして配置し直すこと。
https://stackoverflow.com/questions/42336546/xamarin-android-application-crashed-after-clear-data-in-settings
AndroidはPersonalに保存できないっぽい?
Environment.GetFolderPath(Environment.SpecialFolder.Personal)だと、Androidで例外が発生しちゃう。
下記によるとUserProfileが推奨らしいが、ApplicationDataでも動いた。
ただ、iPhoneだとUserProfileを指定すると例外が発生しちゃうので、結局わけるしかないのか…。
string path = "";
#if ANDROID
path = Path.Combine(System.Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), FILENAME);
#elif IOS
path = Path.Combine(System.Environment.GetFolderPath(Environment.SpecialFolder.Personal), FILENAME);
#endif
iOSのInfo.plist
特にXamarinから移行している場合。
スプラッシュアイコンを指定した場合、Info.plistのUILaunchStoryboardNameタグを削除するのを忘れずに。
あと、UIMainStoryboardFileタグも、移植してしまっていれば削除する。
でないと、起動したときに例外ですっ飛んでしまう。
AndroidはListViewが重すぎてフリーズしている説
iOSならサクッと動いてるんだけどなぁ…。
iOSは起動処理にブレークポイントを貼らない
途中で止めてしまうと、アプリも終了してしまう。
他にもニッチなIT関連要素をまとめていますので、よければ一覧記事もご覧ください。