1

私は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。つまり、定義されている最小のアンドロイドバージョンには存在しないメソッドを使用しているという警告が必要なので、ランタイムバージョンチェックを行ってください。

可能ですか?

答えて

1

コンパイル時の警告を得るには、ターゲットフレームワークをサポートしたい最小SDKに設定する必要があります。これにより、より高いレベルのAPIを使用しようとするとエラーが発生します。 [プロジェクトオプションを開く]ダイアログ。このダイアログで、[ビルド]> [一般

をクリックあなたは、APIレベルについて読むことができ、ここでhttps://developer.xamarin.com/guides/android/application_fundamentals/understanding_android_api_levels/#Target_Framework

あなただけの同じターゲットの枠組みを維持しながら、エラーを取得したい場合は、コンパイル時間をスローするようにあなたのIDEの設定を変更することができますエラーと警告。 enter image description here

+0

ありがとうございます。コンパイル時のエラーを取得するには、コンパイルAPIレベルを希望のレベルに切り替える必要があります。おそらく私の質問は明らかではなかったが、私はそれを改良するだろうが、基本的にはAPI 15をターゲットアンドロイド版としてAPI 15(最小のアンドロイド版)の下位互換性を維持したい。そして、私はAPI 15の上の任意のメソッドを使用しようとしているときにIDEサポートを取得したいと思います。つまり、定義されている最小のAndroidバージョンには存在しないメソッドを使用しているという警告が必要です。ランタイムバージョンチェック。出来ますか? –

+1

答えを更新しました。これを達成するためにXamarin studioで設定を変更することができます。 –

+0

甘い、それはまさに私が必要なものです。面白いのは、ここでエラー(私はエラーを選んだ)が赤い線でマークされているが、ビルド(そしてクラッシュ)を実行できることです。しかし、とにかく、これは開発中にこうした種類の問題を検出するのに十分です。 –

関連する問題