私はandroid:minSdkVersion="15"
とandroid:targetSdkVersion="21"
のAndroid Xamarinアプリケーションを持っています。 IDE(xamarin studio、visual studio)とコンパイルプロセスは、ここで期待されている動作ではないAPI 15を使用している場合は無視されることが判明しました。アンドロイドAPIレベルの不一致のNoSuchMethodErrorランタイムエラーの代わりにコンパイル時エラーを取得するには?
たとえば、API 21
のメソッドPath.addArc(float,float,float,float,float,float)
があり、上記のマニフェスト設定でそれを使用すると、実行時エラーNoSuchMethodError
が発生しました。
API 1
からオーバーロードPath.addArc(RectF,float,float)
を使用するのは簡単な修正ですが、私の質問は、コンパイル時エラーの代わりにまたは実行時の取得方法の詳細です。
[UPDATE]
は、基本的に私は、ターゲットのAndroidバージョンとしてAPI 21
を有しながらAPI 15
(最小アンドロイドバージョン)のための後方互換性を維持したいです。そして、私は上記の方法を使用しようとしているときにIDEサポートを受けたいと思っています。API 15
。つまり、定義されている最小のアンドロイドバージョンには存在しないメソッドを使用しているという警告が必要なので、ランタイムバージョンチェックを行ってください。
可能ですか?
ありがとうございます。コンパイル時のエラーを取得するには、コンパイルAPIレベルを希望のレベルに切り替える必要があります。おそらく私の質問は明らかではなかったが、私はそれを改良するだろうが、基本的にはAPI 15をターゲットアンドロイド版としてAPI 15(最小のアンドロイド版)の下位互換性を維持したい。そして、私はAPI 15の上の任意のメソッドを使用しようとしているときにIDEサポートを取得したいと思います。つまり、定義されている最小のAndroidバージョンには存在しないメソッドを使用しているという警告が必要です。ランタイムバージョンチェック。出来ますか? –
答えを更新しました。これを達成するためにXamarin studioで設定を変更することができます。 –
甘い、それはまさに私が必要なものです。面白いのは、ここでエラー(私はエラーを選んだ)が赤い線でマークされているが、ビルド(そしてクラッシュ)を実行できることです。しかし、とにかく、これは開発中にこうした種類の問題を検出するのに十分です。 –