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> 
  • PreferenceFragment superpone la barra de herramientas
  • ¿Es la mejor práctica para crear un botón como este en una aplicación de Android?
  • Error cómico en la declaración de forma xml de Android
  • Android tamaño de la barra de clasificación (no puede utilizar Widget.RatingBar.Small)
  • Prefijo de espacio de nombres inesperado "xmlns" encontrado para la etiqueta LinearLayout
  • Android: textColor del botón deshabilitado en el selector no se muestra?
  • Android: ¿Cómo inyectar un elemento <string> en otro elemento <string> en XML?
  • String 'xyz' marcada como intraducible pero que existe en la localidad 'ja'
  • Mostrar el cambio de método de notificación en android?
  • Barra de herramientas superpone la barra de estado
  • Android Studio activity_main.xml editor de diseño no me deja arrastrar y soltar nada ...?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.