以下类无法实例化: – android.support.v7.widget.Toolbar

我正在使用Android Lollipop(5.0)中使用的新材质devise创build应用程序。

我正在使用以下指南:

  • http://android-developers.blogspot.it/2014/10/appcompat-v21-material-design-for-pre.html
  • http://antonioleiva.com/material-design-everywhere/

我创build我的工具栏后,我收到此错误:“以下类无法实例化: – android.support.v7.widget.Toolbar”

该应用程序在手机或模拟器中运行良好,但Android Studio的布局devise者没有正确显示布局。

这里有一些图片:

在my_awesome_toolbar.xml布局预览中出错 my_awesome_toolbar.xml错误

activity_my.xml布局预览错误 activity_my.xml中的错误

这些文件的xml代码:

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代码(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> 

目前我使用Android Studio Beta 0.8.9

对于Android Studio(或IntelliJ IDEA),

如果在项目中一切正常,并且在所有布局中仍然收到错误,请尝试“使caching失效并重新启动”。

等到Android Studio完成创build所有caching和索引。

如何使缓存失效并重新启动

我改变了res / values / styles.xml文件:

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

对此:

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

并解决了这个问题。

我做了@gbero所说的,我将Studio使用的Android版本号从22更改为17,并且工作正常。

我正在使用向后兼容性来构buildAndroid版本22,但目标17(idk,如果这是正确的说,我仍然试图找出这个应用程序的东西了),以便触发向后兼容性,这afaik是什么android.support.v7.*是。 这可能是他们的渲染代码的一个错误。 不知道是否需要像上面build议的那样清除caching,因为渲染在caching失效后无法正常工作,所以在我更改要渲染的版本后,它开始工作。 如果我改回到版本22,渲染中断,如果我切换回17,它再次工作。

我的修复

来自: https : //stackoverflow.com/a/29989542/4123403

  1. 清洁项目
  2. 重build项目
  3. 同步Gradle

这为我做了诡计。

另一个可能会有相同效果的错误可能是预览中的错误主题。 出于某种原因,我在这里select了其他主题。 select我的AppTheme后,它再次正常工作:

布局选项

对不起,如果我回答自己,但在最后,我的问题的解决scheme是更新的Android Studio到新的版本0.8.14加那利频道: http ://tools.android.com/recent/

更新之后,问题消失了:

更新之后,问题消失了

我将这个问题留给那些将来有这个问题的人。

  1. 清洁项目
  2. 重build项目
  3. 同步Gradle

它为我工作

我做了什么@ang_lee说,也join了这一行的应用程序的主题风格:

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

我正在使用版本26.0.1:

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

build筑工具:

 buildToolsVersion "26.0.1" 

我在Android Studio屏幕上遇到了同样的错误,当时我想要预览我的项目。 我通过这种方式解决了这个问题:

1 – 我把版本从22改为21.但是如果我改回到版本22,渲染就会中断,如果我切换回到21,它会再次运行。 谢谢@Overloaded_Operator

我更新了我的Android Studio,但不工作。 谢谢@ Salvuccio96

我有同样的错误。 最终我得到这个通知,一个插件已经过时了:

错误对话框

我更新后,问题就消失了。

上面的解决scheme并没有帮助我。 我已经从这个链接尝试了2个第一步。 为我工作得很好。 但是别忘了

 import com.melnykov.fab.FloatingActionButton; 

代替

 import android.support.design.widget.FloatingActionButton; 

在你的MainActivity.java中

我使用的是android studio 2.3.3: – 打开styles.xml – Android studio会在右上angular显示两个选项:“打开编辑器”和“隐藏通知”。 – 点击“打开编辑器” – 在主题下拉菜单中,点击显示所有主题 – select任何以AppCompat开头的主题…(我使用AppComat.DayNight)

注意:如果标题栏消失,则需要扩展AppCompatActivity而不是Activity。

祝一切顺利!

以上都没有为我工作,我更新了我的pp gradle文件中的appCompat – v7版本从23到25.3.1。 帮助它为我工作