升级到AppCompat v22.1.0,现在获取IllegalArgumentException

升级到AppCompat v22.1.0,现在获取IllegalArgumentException:AppCompat不支持当前主题特性

我刚刚升级了我的应用程序,以使用新发布的v22.1.0AppCompat,现在打开我的应用程序时,我得到了下面的异常。

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)

我该怎么解决呢?


函数式编程
浏览 365回答 3
3回答

三国纷争

AppCompat现在对主题窗口标志的期望更加严格,更接近于您从框架中得到的内容。这背后的主要原因是为了支持AppCompatDialogs我们也加入了这个版本。他们大量使用windowNoTitle标志,这是AppCompat以前没有注意到的。因此,要解决您的问题,您有两个选项:简单的方法就是使用Theme.AppCompat.NoActionBar作为你父母的主题。这样做总是正确的。但是,如果不能这样做(可能需要支持操作栏而不支持操作栏),则应该执行以下操作:<style&nbsp;name="MyTheme"&nbsp;parent="Theme.AppCompat"> &nbsp;&nbsp;&nbsp;&nbsp;...</style><style&nbsp;name="MyTheme.NoActionBar"> &nbsp;&nbsp;&nbsp;&nbsp;<!--&nbsp;Both&nbsp;of&nbsp;these&nbsp;are&nbsp;needed&nbsp;--> &nbsp;&nbsp;&nbsp;&nbsp;<item&nbsp;name="windowActionBar">false</item> &nbsp;&nbsp;&nbsp;&nbsp;<item&nbsp;name="windowNoTitle">true</item></style>你应该回到正轨上了。

森林海

那些在所有这些修正之后仍在犯错误的人。请继承Theme.AppCompat.Light.NoActionBar不要用<item&nbsp;name="windowActionBar">false</item>那么,你就不会有任何错误。
打开App,查看更多内容
随时随地看视频慕课网APP