2

私のアプリは API レベル 7 以上をターゲットにする必要がありますが、新しいリリースが利用可能になったときにその機能を選択的に使用したいと考えています。たとえば、次のようなコードがあるとします。

if (Build.VERSION.SDK_INT >= 8) {
    base64String = android.util.Base64.encodeToString(bytes, android.util.Base64.DEFAULT);
} else {
    base64String = MyCustomBase64.encodeBytes(bytes);
}

ただし、「Android 2.1」(API 7) をターゲットとするように Eclipse でプロジェクトを構成すると、クラス android.util.Base64 は API 8 以降にのみ存在するため、見つかりません。クラスがビルド パス上にないため、Eclipse はその行をコンパイル エラー (赤い「x」) として指定します。

私の質問: Eclipse を使用して Android 開発を行うときに、この種の開発 (ターゲット環境に実際には存在しない機能をサポートする) を処理する「適切な」方法は何ですか?

Eclipse のターゲットをいつでも 2.2 (API 8) に変更できますが、それも理想的ではありません。これにより、8+ にのみ存在する機能を知らずに使用し、その事実が Eclipse から通知されない可能性があります。

4

1 に答える 1

1

あなたはあなた自身の質問に答えました。

Eclipse のターゲットをいつでも 2.2 (API 8) に変更できます

それが行われる方法です。マニフェストで minSDK/targetSDK を 7 に設定することもできます。私の知る限り、より高い API レベルのコードについて示したように、if ステートメントを使用するだけで済みます。

于 2012-06-15T21:32:51.773 に答える