3

API レベル 8 から 14 を対象とする Android アプリを作成しています。API レベル 11 以上では Theme.Holo.Light テーマを使用し、それより低い API レベルでは Theme.Light テーマを使用したいと考えています。

res/values/style.xml の内容は次のとおりです。

<resources>
    <style name="AppTheme" parent="android:Theme.Light" />
</resources>

res/values-v11/style.xml の内容は次のとおりです。

<resources>
    <style name="AppTheme" parent="android:Theme.Holo.Light" />
</resources>

これは API レベル 14 で適切にコンパイルされますが、ターゲット API レベルを 8 に設定すると、次のエラーが発生ますvalues-v11/style.xml、および「Android AAPT 問題」。

ファイルres/values-v11/style.xmlを削除すると、アプリは API レベル 8 ターゲットに対して正しくコンパイルされます。

今、私の理解では、API レベル 8 用にコンパイルする場合、ビルド システムは名前が「-v11」で終わるリソース フォルダー内のものを無視する必要があります。

私は何を間違っていますか?

4

1 に答える 1

5

これは、API 11 で導入された Theme.Holo.Light が何であるかを API 8 が把握していなかったためです。要素を使用する最高のAPI バージョンに対してコンパイルする必要があります。

そして、リソースセレクターが間違っていることを理解しています。条件付きでアプリをビルドするためには使用されません。実行時に適切なリソースを取得するために使用されます。

この記事を参照してください。

于 2012-10-26T17:44:54.107 に答える