echo("備忘録");

IT技術やプログラミング関連など、技術系の事を備忘録的にまとめています。

【Xamarin.Forms】遭遇したエラーと対応集

Xamarin.Formsを触り始めてしばらく経ちますが、その中で僕が遭遇したエラー、及びその対処法になります。
なお、一般的なエラーについては、下記ページを参照。

※@nuits_jpさんのページ
Xamarin for Visual Studioインストール後、Androidプロジェクトをデバックしようとしたら配置エラーが発生した場合の対処法 - Qiita
Xamarin for Visual Studio スタートアップ トラブルQA集 - nuits.jp blog

※エクセルソフト 田淵さん(@ytabuchi)のページ
Xamarin FAQ(小技集、またの名をバッドノウハウ) - Xamarin 日本語情報

※僕がiPhone持ってないので、Androidのみ記載しています。すいません...


■ビルド時に「The $(TargetFrameworkVersion) for Xamarin.Forms.Platform.dll is greater than the $(TargetFrameworkVersion) for your project」というメッセージが表示される

【原因】
「ターゲットバージョン」で指定されているOSのバージョンが古すぎる。「ターゲットバージョン」は、最低限Xamarin.Forms.Platform.dllのOSのバージョンと同等かそれ以上である必要がある。

【対処方法】
[Androidマニフェスト]-[ターゲットAndroidバージョン]で、OSのバージョンを該当バージョンまで上げる。
※「SDKバージョンを使用した...」を選択している場合、[アプリケーション]-[Androidバージョンを使用したコンパイル]のOSバージョンを上げる。
デバッグで使用するデバイスのOSのバージョンが低い場合、「最小Androidバージョン」をそのデバイスに合わせればOK。


f:id:Makky12:20180422200239p:plain


■実行時に特定のメソッドで、NoSuchMethodErrorが発生する

【原因】
該当メソッドと、使用しているアセンブリ、またはデバイスのバージョン、及び互換性の問題。

【対処方法】
・使用しているアセンブリのバージョンが低い場合、Visual StudioAndroid SDK Managerなどで、最新バージョンに更新して、再度実行する。
デバッグに使用しているデバイスのOSバージョンが低い場合、更新できるなら更新する。(更新できない場合、別デバイスでの確認にする、あるいは該当メソッドのデバッグは諦めるしかない(かも))


■ビルド時に「前のバージョンの実行をサポートしていません。」というメッセージが表示される

【原因】
不明。
Visual Studioの更新を行った際に、何かの原因で発生することがある模様。

【対応方法】
ピンポイントでのベストな対応方法は不明。
今のところ「Visual Studioの修復or再インストール」しかないみたい...

【備考】
メッセージから「デバイスのOSを最新バージョンにすれば...」と思ってしまうが、最新バージョンにしてもこの現象は解決しない。(てか、ある程度前のバージョンは普通に動作するはずだし...)

参考ページ:Android - Xamarinのビルドに失敗。前のバージョンの実行をサポートしていません。(121632)|teratail


以上です。