10

プロジェクトを 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 docs によると、これはどのように行われるべきかです。参照: http://actionbarsherlock.com/theming.html

4

4 に答える 4

11

再起動を試みましたが、最終的にはプロジェクトをクリーンアップする必要がありました: [Project->Clean...] をクリックします。

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 には API レベル 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 に答える