No solicite problema Window.FEATURE_ACTION_BAR

Estoy tratando de construir mi aplicación, pero sin éxito .. He intentado de varias maneras, pero nada fue trabajado. La excepción es:

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. 

Mi estilo.xml es:

 <resources> <style name="AppTheme" parent="Theme.AppCompat.Light"> <!-- theme customizations --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <item name="android:windowNoTitle">true</item> <item name="android:windowActionBar">false</item> <item name="android:textColorPrimary">@color/ldrawer_color</item> <item name="actionMenuTextColor">@color/ldrawer_color</item> <item name="android:textColorSecondary">@color/ldrawer_color</item> </style> </resources> 

Y como puedes ver, he declarado

 <item name="android:windowNoTitle">true</item> <item name="android:windowActionBar">false</item> 

Este es mi manifest.xml

  <application android:allowBackup="true" tools:replace="android:icon" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> 

Y mi BaseActivity que uso para extender otras actividades

 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); } } 

No sé por qué se bloquea .. La única manera de iniciar la aplicación sin bloqueo es establecer el padre en el style.xml en Theme.AppCompat.Light.NoActionBar pero de esta manera la barra de estado es transparente y no coloreada .. .

Usando Theme.AppCompat.Light le dice a Android que desea que el framework proporcione una ActionBar para usted. Sin embargo, usted está creando su propia Toolbar acción (una Toolbar ), por lo que está dando el marco de señales mixto en cuanto a dónde desea que el ActionBar de venir.

Ya que está utilizando una barra de herramientas, desea Theme.AppCompat.Light.NoActionBar .

El siguiente paso es asegurarse de que su barra de herramientas esté diseñada correctamente, lo que parece ser el lugar donde se están ejecutando los problemas. Para diseñar tu barra de herramientas como una barra de acción con los colores que definiste para tu tema, necesitas proporcionar un tema así:

 <android.support.v7.widget.Toolbar android:layout_height="wrap_content" android:layout_width="match_parent" android:minHeight="?attr/actionBarSize" app:theme="@style/ThemeOverlay.AppCompat.ActionBar" /> 

Consulte la sección "estilo" del widget de la barra de herramientas en esta publicación de blog de desarrolladores de Android para obtener más información.

Asumiendo que tienes estas líneas en styles.xml :

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> 

Añada estas líneas adicionales después de:

 <style name="AppTheme.NoActionBar"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style> 

A continuación, añada esto a su actividad en el manifiesto:

 <activity android:name=".activity.YourActivity" android:theme="@style/AppTheme.NoActionBar"><!-- ADD THIS LINE --> 

Esa fue la mejor solución para mí después de revisar los tutoriales y otras soluciones

En mi caso, he creado una nueva actividad y he olvidado definir su aplicación: theme en AndroidManifest.xml:

  <activity android:name=".HistoryActivity" android:label="History" android:theme="@style/AppTheme.Primary"></activity> 
  • Pregunta la ayuda sobre el problema de lectura de AndroidManifest.xml
  • Android: Barra de estado transparente con colores dinámicos de la acciónBar y DrawerLayout
  • Eliminar una cadena en todos los idiomas Android
  • Creación de un menú de diálogo emergente personalizado
  • Cómo utilizar recursos enteros dentro de recursos de cadena en android
  • Falta el archivo de manifiesto
  • Cómo definir el diseño en un PopupWindow de un archivo xml, cuando el método PopupWindow se llama desde una clase independiente
  • Indicador de actualización de Android SwipeRefreshLayout no visible
  • ¿Por qué no puedo definir atributos de android en el espacio de nombres predeterminado?
  • El botón recortado no recibe la entrada táctil
  • Cómo poner dos EditText en la misma línea
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.