Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ANDROID: Error inflating class android.support.design.widget.AppBarLayout

I added a toolbar to my layout and now I get this error when running:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapp/mainactivity.MainActivity}: android.view.InflateException: Binary XML file line #9: Binary XML file line #2: Error inflating class android.support.design.widget.AppBarLayout

This is my activity layout:

<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <include layout="@layout/appbar"/>

</androidx.constraintlayout.widget.ConstraintLayout>

and this is my appbar layout:

<android.support.design.widget.AppBarLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/app_bar"
    android:theme="@style/Theme.AppCompat.Light.DarkActionBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        android:elevation="4dp"
        android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light" >

    </android.support.v7.widget.Toolbar>

</android.support.design.widget.AppBarLayout>

In my activity onCreate():

Toolbar toolbar = findViewById(R.id.toolbar);
        if (toolbar != null) {
            setSupportActionBar(toolbar);
            toolbar.setTitle(getTitle());
        }

I can't figure out why. Any suggestions?

like image 971
Carlton Avatar asked Mar 22 '19 11:03

Carlton


2 Answers

You need to use

<com.google.android.material.appbar.AppBarLayout
<androidx.appcompat.widget.Toolbar

Instead of

<android.support.design.widget.AppBarLayout
<android.support.v7.widget.Toolbar

SAMPLE CODE

<com.google.android.material.appbar.AppBarLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/app_bar"
    android:theme="@style/Theme.AppCompat.Light.DarkActionBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        android:elevation="4dp"
        android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light" >

    </androidx.appcompat.widget.Toolbar>

</com.google.android.material.appbar.AppBarLayout>

Make sure u have added below dependencies

implementation 'com.google.android.material:material:1.0.0'

UPDATE

if you have used Toolbar and AppBarLayout inside your activity then make sure you have correct imports inside your activity code

import androidx.appcompat.widget.Toolbar
import com.google.android.material.appbar.AppBarLayout
like image 155
AskNilesh Avatar answered Oct 17 '22 08:10

AskNilesh


@Nilesh answer worked for me but there is more. For those who use androidx;

change these in your layout;

android.support.design.widget.CoordinatorLayout
android.support.design.widget.AppBarLayout
android.support.v7.widget.Toolbar
android.support.design.widget.TabLayout
android.support.v4.view.ViewPager

to this;

androidx.coordinatorlayout.widget.CoordinatorLayout
com.google.android.material.appbar.AppBarLayout
androidx.appcompat.widget.Toolbar
com.google.android.material.tabs.TabLayout
androidx.viewpager.widget.ViewPager
like image 42
Sabri Meviş Avatar answered Oct 17 '22 06:10

Sabri Meviş