Xamarinを使ったアプリ開発で、
まっこと初見殺しな実行時エラー事案にぶつかったので、
対処法とかを共有します。
起こった事象
開発中に System.NullReferenceException エラーに襲われる
調査するもソースコードにエラーは見つからず、
ビルドしてDebugを実施、デプロイに成功するも実行時に System.NullReferenceException
で落ちる。
Releaseビルドだと正常に動く。
結論
デバッグライブラリを消せば動く
解決方法
以下のいずれか
@m2wasabi 続き)全部削除するか、エミュレーターだったらイメージ作り直すかするのが手っ取り早いかもしれません。デバッグ用アプリがXamarin(Android?)のバージョンで頻繁に変更され、古いものが入っているとデバックできなくなる事が良くあります
— nuits.jp (@nuits_jp) 2017年2月16日
原因
残念ながら原因の特定には至っていません。
あるビルドから突然 Android用プロジェクトの MainActivity.cs
で base.Oncreate
が認識しなくなり、
対応策としてIDEの指示に従って csproj に変更を加えたあたりが怪しいですが、
再現性が無いので難しいところです。
現象としては、SDKのバージョンが変わった場合の挙動と同じようです。
手掛かりなしで手元のソースを漁ったお陰で Xamarin.Forms のソースけっこう追いかけました。
泥臭い知識としては役に立つと思われますが、問題解決の視点では徒労でした…(´・ω・`)
Xamarinを使った開発で、実行時エラーによく遭うのですが、 その時の対処法100選の一つにでも。
ネタ元
Twitterのモーメントに上げました。 twitter.com
問題の解決に際し @nuits_jp さんをはじめ JXUGの皆様にとても助けられました。
ありがとうございました。