えむにわリソース

ITのスキマ的なあれこれを書きます。

Xamarin.FormsのAndroidアプリでDebug実行時エラーが出る問題(対処のみ)

Xamarinを使ったアプリ開発で、
まっこと初見殺しな実行時エラー事案にぶつかったので、
対処法とかを共有します。

起こった事象

開発中に System.NullReferenceException エラーに襲われる
f:id:m2wasabi:20170216221315j:plain

調査するもソースコードにエラーは見つからず、
ビルドしてDebugを実施、デプロイに成功するも実行時に System.NullReferenceException で落ちる。

Releaseビルドだと正常に動く。

結論

デバッグライブラリを消せば動く

解決方法

以下のいずれか

  • プロジェクトでインストールしたアプリをいったんすべて消す
  • エミュレーターなら初期化や作り直しでも良い

原因

残念ながら原因の特定には至っていません。
あるビルドから突然 Android用プロジェクトの MainActivity.csbase.Oncreateが認識しなくなり、
対応策としてIDEの指示に従って csproj に変更を加えたあたりが怪しいですが、
再現性が無いので難しいところです。
f:id:m2wasabi:20170216223832j:plain

現象としては、SDKのバージョンが変わった場合の挙動と同じようです。

手掛かりなしで手元のソースを漁ったお陰で Xamarin.Forms のソースけっこう追いかけました。
泥臭い知識としては役に立つと思われますが、問題解決の視点では徒労でした…(´・ω・`)

Xamarinを使った開発で、実行時エラーによく遭うのですが、 その時の対処法100選の一つにでも。

ネタ元

Twitterのモーメントに上げました。 twitter.com

問題の解決に際し @nuits_jp さんをはじめ JXUGの皆様にとても助けられました。
ありがとうございました。