私は Gingerbread 用のアプリケーションを構築してminSdkVersion=10
おりtargetSdkVersion=17
、AndroidManifest.xml を使用しています。
API を呼び出す前に、API がサポートされているかどうかを確認する必要があることはわかっています。次に例を示します。
private void removeRule(RelativeLayout.LayoutParams params, int rule) {
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { // API 17
params.removeRule(rule);
} else {
params.addRule(rule, 0);
}
}
しかし、より高いレベルの API を呼び出していることを忘れたり、知らない場合があり、NoSuchMethodError
例外が発生してプログラムがクラッシュすることがあります。
そのため、アプリを公開する前に、常に Android SDK 2.3.3 を使用するようにプロジェクトを設定し、不正なメソッド呼び出しを行っていないことを確認します (たとえば、取得したすべてのエラーはif
、Android SDK のバージョンを確認するステートメントにラップされます)。 SDK を 4.2.2 に戻します。
SDK を切り替えることなく、サポートされていない API が呼び出されないようにするより良い方法はありますか?
(PS私はIntelliJを使用しています)