web-dev-qa-db-ja.com

ログにメッセージが表示される:「app:theme is deprecated」?

最新のappcompatライブラリにアップグレードして以来、ViewUtilsからのログにメッセージが表示されています。

app:theme is now deprecated. Please move to using Android:theme instead.

テーマの親としてparent="Theme.AppCompat.Light.NoActionBar"を使用しています。

48
spierce7

置換app:themeからAndroid:themeしかし、あなたはapp:theme。レイアウト、特にツールバーのレイアウトを確認してください。私の場合、app:themeレイアウトファイル内。次に、私の状況を見てみましょう:

<Android.support.v7.widget.Toolbar xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:styled="http://schemas.Android.com/apk/res-auto"
    Android:id="@+id/toolbar_actionbar"
    Android:layout_width="match_parent"
    Android:layout_height="?attr/actionBarSize"
    Android:background="?attr/colorPrimary"
    Android:minHeight="?attr/actionBarSize"
    styled:popupTheme="@style/ToolbarDarkPopup"
    styled:theme="@style/ActionBarThemeOverlay" />

そして、このレイアウトを次のように変更しました。

<Android.support.v7.widget.Toolbar xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:id="@+id/toolbar_actionbar"
    Android:layout_width="match_parent"
    Android:layout_height="?attr/actionBarSize"
    Android:background="?attr/colorPrimary"
    Android:minHeight="?attr/actionBarSize"
    Android:theme="@style/ActionBarThemeOverlay" />

今、警告は表示されません。

こちらもご覧ください: https://chris.banes.me/2015/04/22/support-libraries-v22-1-0/

クリス・バンズによる素晴らしい説明

70
adek

Toolbarがstyles.xmlでスタイルされているときに、これが発生した別のケースがありました。このように見えた:

<style name="AppActionBar" parent="Widget.AppCompat.ActionBar">
    <item name="Android:background">@color/ng_blue</item>
    <item name="theme">@style/ThemeOverlay.AppActionBar</item>
    <item name="popupTheme">@style/ThemeOverlay.AppCompat.Light</item>
</style>

変化する name="theme"からname="Android:theme"そして、それは問題を修正しました。

18
Greg Ennis

レイアウトを確認してください。

app:theme.を定義したToolbarを使用しています

現在、サポート22.1 app:themeは廃止されています。 Android:themeを使用する必要があります

詳細については、 here を確認してください。

15

スタイルファイルに次のようなコードブロックが表示される場合;

<item name="theme">@style/MyToolbarTheme</item>

交換してください。

<item name="Android:theme">@style/MyToolbarTheme</item>
1
Erhan Biçer