2011-09-12 11 views
3

Android 2.1(Eclair、API Level 7)と互換性がある必要があるアプリケーションがあります。 Android 2.2以降(Froyo、API Level 8)でのみサポートされているマニフェスト属性を使用したいと思います。通常、私のコード内からレベル8のAPIを直接呼び出すことはしません(つまり、リフレクションではなく)ANYレベル8のAPIを使用します。私たちは注意する必要があり、今低いAPIレベルに対応しながら、上位APIレベルのマニフェスト属性をサポートしていますか?

<uses-sdk android:minSdkVersion="7"/> 

警告されています

この問題に対する受け入れられた解決策は、下位互換性を示すために、フローズンヨーグルト(API 8)に対してコンパイルとmanfiestにおける用途-SDKのタグを含めることですFroyo固有のAPI呼び出しを誤って使用していないことを確認するために、Eclairに対して(自動テストおよび/または手動で)幅広くテストします。

これは私の意見ではほとんど解決できません。私はアプリケーションのベースライン要件を上回るAPIを呼び出すためにリフレクションを使用することを強く好み、ベースライン以上のマニフェスト設定しかサポートしないことを強く望みます。クリーンで簡単にこれを回避する方法はありますか?

現時点での回避策は、ベースラインAPIと互換性のないマニフェストエントリを削除し、パブリックリリース前にテストコンパイルを実行することです。

ありがとうございました!

答えて

0

これは今すぐできることです。

これは、レイアウトファイルでサポートされていない/推奨されていない属性も使用します。マニフェストファイルやその他のリソースファイルに条件を入れることはできません。

しかし、今のところ、大部分のユーザーが最新のバージョン(4.0以上)に切り替わるので、それは大きな問題ではないと思います。

関連する問題