不要请求Window.FEATURE_ACTION_BAR问题

我正在尝试构建我的应用程序,但没有成功..我尝试了几种方式,但没有任何工作。 例外是:

Caused by: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead. 

我的style.xml是:

    @color/colorPrimary @color/colorPrimaryDark @color/colorAccent true false @color/ldrawer_color @color/ldrawer_color @color/ldrawer_color   

你可以看到我宣布了

 true false 

这是我的manifest.xml

          

和我用来扩展其他活动的BaseActivity

 import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; public abstract class BaseActivity extends AppCompatActivity { public Toolbar toolbar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(getLayoutResource()); toolbar = (Toolbar) findViewById(R.id.toolbar); if (toolbar != null) { setSupportActionBar(toolbar); getSupportActionBar().setTitle(BaseActivity.this.getResources().getString(R.string.app_name)); //getSupportActionBar().setDisplayHomeAsUpEnabled(true); } } protected abstract int getLayoutResource(); protected void setActionBarIcon(int iconRes) { toolbar.setNavigationIcon(iconRes); } } 

我不知道它崩溃的原因。启动应用程序而不崩溃的唯一方法是在Theme.AppCompat.Light.NoActionBar的style.xml上设置父Theme.AppCompat.Light.NoActionBar但是这样状态栏是透明的而不是彩色的.. 。

Solutions Collecting From Web of "不要请求Window.FEATURE_ACTION_BAR问题"

使用Theme.AppCompat.Light告诉Android您希望框架为您提供ActionBar。 但是,您正在创建自己的ActionBar( Toolbar ),因此您可以为框架提供有关ActionBar来源的混合信号。

由于您使用的是工具栏,因此需要Theme.AppCompat.Light.NoActionBar

下一步是确保您的工具栏样式正确,这似乎是您遇到问题的地方。 要使用您为主题定义的颜色像ActionBar一样设置工具栏的样式,您需要提供如下主题:

  

有关详细信息,请参阅此Android开发人员博客文章中 “工具栏”小部件的“样式”部分。

假设你在styles.xml有这样的行:

  

之后添加以下额外行:

  

然后将其添加到清单中的活动:

  

在检查教程和其他解决方案后,这对我来说是最好的解决方案

就我而言,我创建了一个新活动,忘了在AndroidManifest.xml中定义它的app:theme:

   

将清单中的Activity的“android:theme”的值从“@ style / AppTheme”更改为“@ style / AppTheme.NoActionBar”后,我解决了问题: