我正在编写一个Android应用,目标是API级别8到14.我想使用适用于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时,它会出现以下错误:“检索项目的父项时出错:找不到与给定名称匹配的资源'android:Theme。 Holo'“在 res / values-v11 / style.xml 中,以及” Android AAPT问题“。
如果我删除文件 res / values-v11 / style.xml ,该应用程序会正确编译API级别8目标。
现在,我的理解是,在编译API级别8时,构建系统应该忽略名称以“-v11”结尾的资源文件夹中的任何内容。
我做错了什么?
答案 0 :(得分:5)
这是因为API 8不知道Theme.Holo.Light是什么,因为它在API11中引入。您必须针对使用。
元素的最高 API版本进行编译您理解资源选择器错误。它不用于有条件地构建应用程序。它用于在运行时选择正确的资源 。
请参阅this article。