10

我将我的项目从 Android 4.2 更新到了 Android 4.2.2,我的 style.xml 中突然出现了这个错误:

<style name="Theme.Styled" parent="Theme.Sherlock.Light.DarkActionBar">
    <item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
   <!-- Requires level 11. Current: 7 --> <item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
</style>

我该如何解决?根据 ABS 文档,这就是应该这样做的方式。见:http ://actionbarsherlock.com/theming.html

4

4 回答 4

11

我尝试重新启动,但我最终需要清理项目:单击“项目->清理...”

每次我保存我的 styles.xml 时,错误都会回来。目前,我在编辑该文件以避免错误时暂时将我的最低 API 级别设置为 11,然后当我想在我的低 API 级别模拟器上运行它时将其重置并清理。

编辑:如果您不喜欢人为地将最小 SDK 版本设置为高,我也可以将其更改为 14(其他一些较高的数字),保存 AndroidManifest.xml,将其更改回来,然后再次保存。

于 2013-03-07T00:49:36.877 回答
10

我使用了建议的 Eclipse 快速修复(下划线元素上的 CTRL-1)并添加了警告抑制工具:ignore="NewApi"

<item name="android:actionBarStyle" tools:ignore="NewApi">@style/Widget.Styled.ActionBar</item>

这样您就不必忽略整个 Lint 警告,这在其他情况下可能很方便,并且您可以编译项目而无需在每次编辑文件时重新调整目标 API。

更新:正如greg7gkb 在评论中指出的那样:不要忘记命名空间声明(xmlns:tools="schemas.android.com/tools")。

于 2013-03-17T23:06:12.380 回答
1

最终,您确实应该在 API 特定的 styles.xml 文件中添加导致错误的属性。

这个 SO 答案比我描述的要好得多:android:actionBarStyle requires API level 11

我认为所有其他答案都不是修复,而是解决方法(颠覆错误,但最终没有修复它)。

于 2014-11-10T16:20:49.813 回答
0

在 Intellij IDEA(可能也是 eclipse)中,您可以通过添加来抑制整个文件的 API 警告

<!--suppress AndroidLintNewApi -->

在声明架构之前。因此,您的 xml 文件将如下所示:

<!--suppress AndroidLintNewApi -->
<resources xmlns:android="http://schemas.android.com/apk/res/android">
    < ... />
</resources>
于 2013-08-21T23:41:04.500 回答