support last android appcompat android-appcompat

com.android.support:appcompat-v7 last version



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

AppCompat ahora es más estricto en cuanto a lo que espera en los indicadores de la ventana del tema, y ​​se acerca más a lo que obtendría del marco.

La razón principal detrás de esto es para apoyar AppCompatDialogs que también agregamos en esta versión. Hacen un uso intensivo de la bandera windowNoTitle , a la que AppCompat anteriormente no prestaba mucha atención.

Entonces, para solucionar su problema, tiene dos opciones:

La manera fácil es usar Theme.AppCompat.NoActionBar como tema principal. Esto siempre hará lo correcto.

Sin embargo, si no puede hacer eso (tal vez necesite admitir la barra de acción y ninguna 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 normalidad ahora.

Acabo de actualizar mi aplicación para usar la nueva versión v22.1.0 AppCompat 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?


Aquellos que todavía reciben un error después de todos esos arreglos.

Por favor hereda de

Theme.AppCompat.Light.NoActionBar

y no uses

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

Entonces, no obtendrá ningún error.


Simplemente use esto en su 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 al archivo de actividad, déjelo

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


yo añadí

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

Pero no fue suficiente. Finalmente, mover super.onCreate antes de setContentView en Activity - solucionó mi problema :)

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