The following classes could not be instantiated: - android.support.v7.widget.Toolbar

JavaAndroidXml

Java Problem Overview


I am creating an app with the new Material Design used in Android Lollipop (5.0).

I am using the following guides:

After I create my toolbar, I receive this error: "The following classes could not be instantiated: - android.support.v7.widget.Toolbar"

The app works well in the phone or emulator, but the layout designer of Android Studio doesn't show the layout correctly.

Here there are some images:

Error in my_awesome_toolbar.xml layout preview error in my_awesome_toolbar.xml

Error in activity_my.xml layout preview error in activity_my.xml

The xml code of the files:

my_awesome_toolbar.xml:

<?xml version="1.0" encoding="utf-8"?>

<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/my_awesome_toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary" />

activity_my.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:tools="http://schemas.android.com/tools"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/root"
            tools:context="com.myapp.test.MyActivity"
            android:orientation="horizontal">

    <include
        android:id="@+id/toolbar"
        layout="@layout/my_awesome_toolbar"
        />
    <!-- Rest of layout -->
</RelativeLayout>

MyActivity.java:

package com.myapp.test;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;


public class MyActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.my, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

xml code of the styles (values/styles.xml):

<resources>

    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/blue</item>
        <item name="colorPrimaryDark">@color/dark_blue</item>
        <item name="actionOverflowButtonStyle">@style/AppTheme.OverflowButtonStyle</item>
    </style>

    <!-- Style Title -->
    <style name="Title">
        <item name="android:textColor">@color/white</item>
        <item name="android:textStyle">bold</item>
        <item name="android:textSize">16sp</item>
    </style>

    <style name="AppTheme.OverflowButtonStyle" parent="Widget.AppCompat.ActionButton.Overflow">
        <item name="android:src">@drawable/overflow_icon</item>
    </style>
</resources>

At the moment I use Android Studio Beta 0.8.9

Java Solutions


Solution 1 - Java

I changed the res/values/styles.xml file from this:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

to this:

<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">

and that solved the problem.

Solution 2 - Java

For Android Studio (or IntelliJ IDEA),

If everything looks OK in your project and that you're still receiving the error in all your layouts, try to 'Invalidate caches & restart'.

Wait until Android Studio has finished to create all the caches & indexes.

how to invalidate cache & restart

Solution 3 - Java

I did what @gbero said, and I changed the Android version number that Studio uses from 22 to 17 and it works.

I am using the backwards compatibility to build for Android ver 22 but to target 17 (idk if that's correctly said, I am still trying to figure this app stuff out) so that triggered the backwards compatibility, which afaik is what the android.support.v7.* is. This is probably a bug with their rendering code. Not sure if clearing the cache as suggested above was needed as rendering didn't work just after invalidating the cache, it started working after I changed the version to render. If I change back to version 22, the rendering breaks, if I switch back to 17, it works again.

my fix

Solution 4 - Java

From: https://stackoverflow.com/a/29989542/4123403

  1. Clean project
  2. Rebuild project
  3. Sync Gradle

This did the trick for me.

Solution 5 - Java

Another mistake that can have the same effect can be the wrong theme in the preview. For some reason I had selected some other theme here. After choosing my AppTheme it worked fine again:

layout options

Solution 6 - Java

Sorry if I answer myself, but, at the finally, the solution of my problem was update Android Studio to the new version 0.8.14 by Canary Channel: http://tools.android.com/recent/

After the update, the problem is gone:

After the update, the problem is gone

I leave this question here for those who have this problem in the future.

Solution 7 - Java

  1. Clean project
  2. Rebuild project
  3. Sync Gradle

it work for me

Solution 8 - Java

I did what @ang_lee said and also i added this line to the app theme style :

<item name="windowActionBar">false</item>

i am using version 26.0.1 :

com.android.support:design:26.0.1
com.android.support:appcompat-v7:26.0.1

building tools:

buildToolsVersion "26.0.1"

Solution 9 - Java

I had the same error on my Android Studio screen when i wanted to prevew my project. I fix the problem by this ways:

1- I chang the version from 22 to 21. But if I change back to version 22, the rendering breaks, if I switch back to 21, it works again. Thank you @Overloaded_Operator

I updated my Android Studio but not working. Thank you @Salvuccio96

Solution 10 - Java

none of above worked for me , i updated the appCompat - v7 version in my app gradle file from 23 to 25.3.1. helped to make it work for me

Solution 11 - Java

Find styles.xml in app/res/values folder.

Parent attribute of the style could be missing "Base". It should start as

<style name="AppTheme" parent="Base.Theme.AppCompat...

Solution 12 - Java

I had the same error. Eventually I got this notice that a plugin was out of date:

error dialog

After I updated, the problem went away.

Solution 13 - Java

The solutions above didn't help me. I've tried 2 first steps from [this link][1]. [1]: https://github.com/makovkastar/FloatingActionButton

Worked fine for me. But don't forget to

import com.melnykov.fab.FloatingActionButton; 

instead of

import android.support.design.widget.FloatingActionButton;

in your MainActivity.java

Solution 14 - Java

I use android studio 2.3.3:

  • Open styles.xml
  • Android studio will show a notification on the top right with two options: "open editor" and "Hide notification".
  • Click "open editor"
  • Under theme parent dropdown, click show all themes
  • Select any theme starting with AppCompat... (I used AppComat.DayNight)

NB: If your title bar disappears, you need to extend AppCompatActivity instead of Activity.

All the best!

Solution 15 - Java

I had the same problem for one of the activities in my app , one of the causes of this problem is that Theme in the theme editor might be different than the theme defined in the 'styles.xml'.change the Theme in the theme editor to your 'Apptheme' or your custom defined theme(if you have defined). Doing this fixed my issue.

Solution 16 - Java

My Problem has also been solved by changing in styles.xml

<!-- Base application theme. -->
<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestiondevpeluxView Question on Stackoverflow
Solution 1 - JavaAng LeeView Answer on Stackoverflow
Solution 2 - JavagberoView Answer on Stackoverflow
Solution 3 - JavaOverloaded_OperatorView Answer on Stackoverflow
Solution 4 - JavaEric B.View Answer on Stackoverflow
Solution 5 - JavaBjörn KechelView Answer on Stackoverflow
Solution 6 - JavadevpeluxView Answer on Stackoverflow
Solution 7 - JavaFrancesco TaioliView Answer on Stackoverflow
Solution 8 - JavaAymAn AbuOmarView Answer on Stackoverflow
Solution 9 - Javakilian agbotonView Answer on Stackoverflow
Solution 10 - JavaAntroidView Answer on Stackoverflow
Solution 11 - Javadp2050View Answer on Stackoverflow
Solution 12 - JavaJames MooreView Answer on Stackoverflow
Solution 13 - JavaWishMasterView Answer on Stackoverflow
Solution 14 - JavaNorman PilusaView Answer on Stackoverflow
Solution 15 - JavaWizWarriorView Answer on Stackoverflow
Solution 16 - Javaabir-cseView Answer on Stackoverflow