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 usar la recién lanzada v22.1.0 AppCompat y ahora estoy recibiendo 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 arreglo?
4 answers
AppCompat ahora es más estricto en lo que se espera en las banderas de la ventana del tema, coincidiendo más estrechamente con lo que obtendría del marco.
La razón principal detrás de esto es para soportar AppCompatDialogs que también estábamos agregando en esta versión. Hacen un uso intensivo de la bandera windowNoTitle
, a la que AppCompat anteriormente no prestaba mucha atención.
Así que para solucionar tu problema tienes dos opciones:
La manera fácil es simplemente usar Theme.AppCompat.NoActionBar
como su tema principal. Esto siempre servirá lo correcto.
Si no puedes hacer eso (tal vez necesites soportar barra de acción y ninguna barra de acción), debes 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>
Usted debe estar de vuelta en la pista ahora.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-21 20:17:55
Los que todavía están recibiendo el error después de todos los que arreglan.
Por favor herede de
Theme.AppCompat.Light.NoActionBar
Y no use
<item name="windowActionBar">false</item>
Entonces, no obtendrá ningún error.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-24 16:57:05
He añadido
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
Pero no fue suficiente. Por fin, súper en movimiento.onCreate antes de setContentView en Actividad-solucionado mi problema:)
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.v2_main_dash);
...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-13 15:10:28
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 por favor 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);
}
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-08 10:05:38