我将我的项目从Android 4.2更新到Android 4.2.2,我突然在styles.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
答案 0 :(得分:11)
我尝试重新启动,但最终需要清理项目:点击“Project-&gt; Clean ...”
每次保存styles.xml时都会出现错误。目前,我在编辑该文件时暂时将我的最低API级别设置为11以避免错误,然后将其重置为低清并在我想要在我的低API级别仿真器上运行时进行清理。
编辑:如果你不喜欢将你的最低SDK版本人为地高,那么我也可以将它更改为14(其他一些高数字),保存AndroidManifest.xml,更改它马上回来,再次保存。
答案 1 :(得分: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"
)。
答案 2 :(得分:1)
最终,你真的应该在API特定的styles.xml文件中添加给你错误的属性。
这个SO答案比我更好地描述了这个:android:actionBarStyle requires API level 11
我认为所有其他答案都不是修复,而是解决方法(颠覆错误,但最终不修复错误)。
答案 3 :(得分:0)
在Intellij IDEA(可能也是eclipse)中,您可以通过添加
来抑制整个文件的API警告<!--suppress AndroidLintNewApi -->
在声明架构之前。所以你的xml文件看起来像这样:
<!--suppress AndroidLintNewApi -->
<resources xmlns:android="http://schemas.android.com/apk/res/android">
< ... />
</resources>