【问题标题】:Theme.Holo in styles.xml with level < 11 causes validation error in Eclipse ADT级别 < 11 的 styles.xml 中的 Theme.Holo 会导致 Eclipse ADT 中的验证错误
【发布时间】:2012-08-25 13:08:10
【问题描述】:

我尝试使用alternative resources/主题选择器解决方案found here在新设备上切换到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'。 styles.xml /MyApp/res/values-v11

清单设置这些 SDK 值:

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

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

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


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

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

激活默认主题。

【问题讨论】:

    标签: android eclipse-adt


    【解决方案1】:

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

    【讨论】:

    • 查看我的编辑,minSdkVersion 设置为 7,但如果我使用 Android 3.0 库,Eclipse 只会编译项目
    • 可以使用 Android 3.0 库进行编译,只要您将 minsdkversion 设置为您喜欢的 API
    • 我接受了您的回答(有关目标设备问题的其他提示)
    【解决方案2】:

    将目标设置为 3.0 不会限制它不能在旧设备上运行。那将是 minSDKVersion。将目标设置为 11+ 仅允许您访问仅在 11+ 中的功能。您只需要注意不要在使用 API 级别 11+ 的代码中使用任何功能。一种可能的解决方案是查看 inot HoloEverywhere,它为您提供 API

    【讨论】:

    • 查看我的编辑,minSdkVersion 设置为 7,但如果我使用 Android 3.0 库,Eclipse 只会编译项目
    • 对。所以使用这些库就是我要说的。只要您不使用来自较新 API 级别的任何 API 调用,它仍将在较旧的操作系统版本上运行。
    • 如果我将项目构建目标设置为 3.0,则设备选择窗口不允许在 2.1 设备上运行应用程序
    • 不确定是什么问题。我的应用程序设置为为 4.1 构建,我只是在 2.1 模拟器上运行它而没有任何问题。我的目标是 15,最小是 7。
    • 我假设选择显示一个红十字。这不是您的应用程序是否兼容的指标。点击模拟器。我还是会跑
    猜你喜欢
    • 2014-11-29
    • 1970-01-01
    • 2015-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多