Seeing message in logs: "app:theme is deprecated"?
Asked Answered
H

4

49

Ever since upgrading to the latest appcompat library, I'm seeing a message in my logs from ViewUtils.

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

I'm using parent="Theme.AppCompat.Light.NoActionBar" as my theme parent.

Harvester answered 24/4, 2015 at 17:54 Comment(5)
the warning is not complaining about the theme itself, but about the app keyword. You should start using android in place of appAlviani
are you using ToolBar?Alviani
Yes, I am using Toolbar.Harvester
look in your layout which contains the Toolbar and look for app:, replace it with android:Alviani
See here for an official info: android-developers.googleblog.com/2015/04/…Irreplaceable
S
73

Replace app:theme to android:theme but you can have a situation when you are not using app:theme. Check your layout, especially toolbar layout. In my case, I didn't have app:theme in my layout files. Then take a look at my 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" />

And I've changed this layout to:

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

Now I don't see the warning.

Take a look also here: https://chris.banes.me/2015/04/22/support-libraries-v22-1-0/

Great explanation by Chris Banes

Shop answered 24/4, 2015 at 18:41 Comment(4)
and what about 'popupTheme'? should we also use 'android' instead of 'styled'?Boren
@Boren No, you keep using styled:popupTheme, styled:contentInsetStart, etc. (as long as you're using the support library Toolbar). These are styleable attributes declared by the support library.Butanone
But this solutions works with every version of Android or there is any version which don't accept the use of andoid:teme?Infliction
@PauArlandisMartinez this has a bit more information: #57280115Dariusdarjeeling
H
19

I had another case where this occurred when my Toolbar was styled in styles.xml. It looked like this:

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

Change name="theme" to name="android:theme" and it fixed the problem.

Handley answered 2/6, 2015 at 17:17 Comment(1)
that was the place my search for :theme did not find as I just did not think about this location...Darcidarcia
R
16

Check your layout.

You are using a Toolbar where you have defined app:theme.

Now with the support 22.1 app:theme is deprecated. You should use android:theme

Check here for more info.

Remit answered 24/4, 2015 at 18:17 Comment(0)
H
1

If you see a code block like the following in the styles file ;

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

Replace it.

<item name="android:theme">@style/MyToolbarTheme</item>
Holophrastic answered 19/4, 2018 at 13:3 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.