Actualizado a AppCompat v22.1.0 y ahora obteniendo IllegalArgumentException: AppCompat no admite las características del tema actual

Acabo de actualizar mi aplicación para utilizar la nueva versión de AppCompat v22.1.0 y ahora recibo la siguiente excepción cuando abro mi aplicación.

Caused by: java.lang.IllegalArgumentException: AppCompat does not support the current theme features at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:360) at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:246) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106) 

¿Cómo lo soluciono?

AppCompat es ahora más estricto en lo que espera en las banderas de la ventana del tema, más de cerca lo que obtendría del marco.

La razón principal detrás de esto es apoyar AppCompatDialogs que también estábamos agregando en esta versión. Ellos hacen un gran uso de la bandera windowNoTitle , que AppCompat anteriormente no prestar mucha atención.

Así que para solucionar su problema tiene dos opciones:

La forma más sencilla es utilizar Theme.AppCompat.NoActionBar como tema principal. Esto siempre hará lo correcto.

Si no puede hacer eso sin embargo (tal vez usted necesita para apoyar la barra de acción y no barra de acción), debe hacer lo siguiente:

 <style name="MyTheme" parent="Theme.AppCompat"> ... </style> <style name="MyTheme.NoActionBar"> <!-- Both of these are needed --> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style> 

Deberías volver a la pista ahora.

Aquellos que siguen recibiendo errores después de todos los arreglos.

Por favor herede de

 Theme.AppCompat.Light.NoActionBar 

Y no use

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

Entonces, no obtendrá ningún error.

yo añadí

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

Pero no era suficiente. Por último, mover super.onCreate antes de setContentView en Actividad – arregló mi problema 🙂

  public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.v2_main_dash); ... 

Solo usa esto en tu style.xml en la carpeta values-v21 no se necesita otra edición

  <style name="AppTheme" parent="Theme.AppCompat"> <!-- theme customizations --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> 

No agregue nada en el archivo de actividades por favor dejelo

 public class Main extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, 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); } } 
  • Cómo utilizar android: Theme.Material (tema material) en styles.xml android?
  • ¿Puedo usar Activity en lugar de ActionbarActivity sin Actionbar en Appcompat-v7?
  • La barra de estado se vuelve blanca y no muestra contenido detrás de ella
  • Android: Estilo ActionMode en AppCompat-v7 con la barra de herramientas
  • Quitar icono de la vista de búsqueda del texto de la pista
  • Error de lanzamiento de SwitchCompat
  • Appcompact DialogFragment de una sola opción marca de verificación color
  • Android Marca roja exclamatoria
  • AppCompat v21 Barra de herramientas que cambia el tamaño del logotipo
  • ¿Es posible tener un menú de barras de acción usando la librería appcompat?
  • android getSupportActionBar () devuelve null en el fragmento
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.