web-dev-qa-db-fra.com

Voir un message dans les journaux: "app: le thème est obsolète"?

Depuis la mise à niveau vers la dernière bibliothèque compatible avec les applications, je vois un message dans mes journaux de ViewUtils.

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

J'utilise parent="Theme.AppCompat.Light.NoActionBar" comme parent de mon thème.

48
spierce7

Remplacer app:theme à Android:theme mais vous pouvez avoir une situation lorsque vous n'utilisez pas app:theme. Vérifiez votre disposition, en particulier la disposition de la barre d'outils. Dans mon cas, je n'avais pas app:theme dans mes fichiers de mise en page. Jetez ensuite un œil à ma situation:

<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" />

Et j'ai changé cette disposition en:

<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" />

Maintenant, je ne vois pas l'avertissement.

Jetez également un œil ici: https://chris.banes.me/2015/04/22/support-libraries-v22-1-0/

Grande explication par Chris Banes

70
adek

J'ai eu un autre cas où cela s'est produit lorsque mon Toolbar était stylé dans styles.xml. Cela ressemblait à ceci:

<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>

Changement name="theme" à name="Android:theme" et cela a résolu le problème.

18
Greg Ennis

Vérifiez votre mise en page.

Vous utilisez un Toolbar où vous avez défini app:theme.

Maintenant avec le support 22.1 app:theme est obsolète. Tu devrais utiliser Android:theme

Vérifiez ici pour plus d'informations.

15
Gabriele Mariotti

Si vous voyez un bloc de code comme celui-ci dans le fichier de styles;

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

Remplacer.

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