Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Upgraded to AppCompat v22.1.0 and now getting IllegalArgumentException: AppCompat does not support the current theme features

I've just upgraded my app to use the newly released v22.1.0 AppCompat and I'm now getting the following exception when I open my app.

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) 

How do I fix it?

like image 390
Chris Banes Avatar asked Apr 22 '15 07:04

Chris Banes


1 Answers

AppCompat is now more strict on what it expect in theme window flags, more closely matching what you would get from the framework.

The main reason behind this is to support AppCompatDialogs which we were also adding in this release. They make heavy use of the windowNoTitle flag, which AppCompat previously didn't pay much attention to.

So to fix your issue you have two options:

The easy way is to just use Theme.AppCompat.NoActionBar as your parent theme. This will always do the right thing.

If you can't do that though (maybe you need to support action bar and no action bar), you should do the following:

<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> 

You should be back on track now.

like image 141
Chris Banes Avatar answered Oct 01 '22 01:10

Chris Banes