为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

函数式编程 2019-07-22 15:01:59
升级到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)我该怎么解决呢?
查看完整描述

3 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

AppCompat现在对主题窗口标志的期望更加严格,更接近于您从框架中得到的内容。

这背后的主要原因是为了支持AppCompatDialogs我们也加入了这个版本。他们大量使用windowNoTitle标志,这是AppCompat以前没有注意到的。

因此,要解决您的问题,您有两个选项:

简单的方法就是使用Theme.AppCompat.NoActionBar作为你父母的主题。这样做总是正确的。

但是,如果不能这样做(可能需要支持操作栏而不支持操作栏),则应该执行以下操作:

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

你应该回到正轨上了。


查看完整回答
反对 回复 2019-07-22
?
森林海

TA贡献2011条经验 获得超2个赞

那些在所有这些修正之后仍在犯错误的人。

请继承

Theme.AppCompat.Light.NoActionBar

不要用

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

那么,你就不会有任何错误。


查看完整回答
反对 回复 2019-07-22
  • 3 回答
  • 0 关注
  • 364 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信