0

我尝试使用此处找到的替代资源/主题选择器解决方案在新设备上切换到 Holo 主题。该项目使用 Android 2.1 作为项目构建目标。

但是,如果我将此 XML 放入 res/values-v11/styles.xml

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

Eclipse 指示错误:

检索项目的父项时出错:找不到与给定名称“@android:style/Theme.Holo”匹配的资源。样式.xml /MyApp/res/values-v11

清单设置这些 SDK 值:

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

如果我将项目构建目标设置为 Android 3.0,我只能编译这个项目,但它不会在旧设备上运行。

所以这个样式选择器解决方法不能与 Eclipse ADT 一起使用。这是 Eclipse ADT 中的错误,ADT 不应该忽略 v11 styles.xml 吗?


更新:我可以使用一种解决方法并将文件内容设置为

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

激活默认主题。

4

2 回答 2

2

如果您设置android:minSdkVersion为较低的 API,您可以在 Android 3.0< 上运行该应用程序。所以只需将目标设置为 API 级别 11+,但将最小 SDK 设置为 10<。

于 2012-08-30T18:31:16.523 回答
0

将目标设置为 3.0 不会限制它不能在旧设备上运行。那将是 minSDKVersion。将目标设置为 11+ 仅允许您访问仅在 11+ 中的功能。您只需要注意不要在使用 API 级别 11+ 的代码中使用任何功能。一种可能的解决方案是查看 inot HoloEverywhere,它为您提供 API <11 的 Holo 主题以及 ActionBar Sherlock 的 ActionBAr 内容,远远超过兼容性库。

于 2012-08-30T18:32:26.400 回答