升级到AppCompat v22.1.0,现在获得IllegalArgumentException:AppCompat不支持当前的主题功能
本文翻译自: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. 我刚刚升级了我的应用程序以使用新发布的v22.1.0 AppCompat,现在打开应用程序时出现以下异常。
Caused by: java.lang.IllegalArgumentException: AppCompat does not support the current theme featuresat 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? 我如何解决它?
#1楼
参考:https://stackoom.com/question/20zl0/升级到AppCompat-v-现在获得IllegalArgumentException-AppCompat不支持当前的主题功能
#2楼
AppCompat is now more strict on what it expect in theme window flags, more closely matching what you would get from the framework. AppCompat现在对主题窗口标志的期望更加严格,与您从框架中获得的匹配更加紧密。
The main reason behind this is to support AppCompatDialogs which we were also adding in this release. 这背后的主要原因是要支持AppCompatDialogs ,我们也在此版本中添加了该功能。 They make heavy use of the windowNoTitle
flag, which AppCompat previously didn't pay much attention to. 它们大量使用了windowNoTitle
标志,AppCompat以前并未对此进行过多关注。
So to fix your issue you have two options: 因此,要解决您的问题,您有两种选择:
The easy way is to just use Theme.AppCompat.NoActionBar
as your parent theme. 简单的方法是只使用Theme.AppCompat.NoActionBar
作为父主题。 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. 您现在应该回到正轨。
#3楼
Just use this in your style.xml
in values-v21 folder no other editing is needed 只需在values-v21文件夹的style.xml
中使用此文件,无需其他编辑
<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>
Don't add anything in to activity file please leave it 不要在活动文件中添加任何内容,请保留它
public class Main extends ActionBarActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}@Overridepublic 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;}@Overridepublic 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);}
}
#4楼
I added 我加了
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
but it wasnt enough. 但这还不够。 Finally, moving super.onCreate before setContentView in Activity - fixed my issue :) 最后,在活动中的setContentView之前移动super.onCreate-解决了我的问题:)
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.v2_main_dash);...
#5楼
Those who're still getting error after all of those fix. 那些人在完成所有这些修复后仍然出错。
Please inherit from 请继承
Theme.AppCompat.Light.NoActionBar
and don't use 而且不要使用
<item name="windowActionBar">false</item>
Then, you won't get any error. 这样,您就不会有任何错误。
升级到AppCompat v22.1.0,现在获得IllegalArgumentException:AppCompat不支持当前的主题功能相关推荐
- windows 如何安装oracle 补丁包,Windows Server 2003 上安装 Oracle10g(10.2.0.1)并升级 至补丁(10.2.0.4) 图解...
Windows Server 2003 上安装 Oracle10g(10.2.0.1)并升级 至补丁(10.2.0.4) 图解 第一部分:安装 Oracle 10.2.0.1 1.选择安装方法 2.选 ...
- codis3.2升级redis3.11到redis6.0.10调研
codis升级redis3.11到redis6.0.10背景 当前codis最新版本为3.2对应的redis的版本为3.2.11,针对以往的redis在使用过程中当内存碎片率过高时只能重启节点,无法动 ...
- 使用vSphere Host Update Utility 4.0升级ESX 3到4.0版本
在VMware ESX Server 4.0提供的组件中,VI Client包括的"vSphere Host Update Utility 4.0"组件,可以通过网络,直接将ESX ...
- android apt最新版本,解决Android studio 2.3升级到Android studio 3.0 后apt报错问题
解决Android studio 2.3升级到Android studio 3.0 后apt报错问题 发布时间:2020-09-16 19:59:42 来源:脚本之家 阅读:62 作者:哈特中尉 1. ...
- linux gcc 7.3.0安装,升级gcc到7.3.0
#查看当前版本 gcc --version # 先查看当前版本确认是否需要升级 tar -zxvf gcc-7.3.0.tar.gz cd gcc-7.3.0 #检测和安装相关依赖包,这个过程需要耐心 ...
- 升级xcode5.1 iOS 6.0后以前的横屏项目 变为了竖屏
升级xcode5.1 iOS 6.0后以前的横屏项目 变为了竖屏,以下为解决办法: 在AppDelegate 的初始化方法 - (BOOL)application:(UIApplication * ...
- 你的Parquet该升级了:IOException: totalValueCount == 0问题定位之旅
本文分享自华为云社区<你的Parquet该升级了:IOException: totalValueCount == 0问题定位之旅>,原文作者:wzhfy . 1. 问题描述 使用Spark ...
- mysql4.0升级_再遇MySQL4.0升级到MySQL5.1的时候
已经好久没搞过MySQL4.0升级到MySQL4.1/MySQL5.0/MySQL5.1的操作了.昨天晚上一个朋友的服务器有几个数据库需要做这样的操作. 冷不丁再遇到这样的情况的确有点楞,不过好在之前 ...
- 升级到 Android Studio 3.0 + Gradle 4.1 遇到的一些坑及解决方案
升级到 Android Studio 3.0 + Gradle 4.1 遇到的一些坑及解决方案 参考文章: (1)升级到 Android Studio 3.0 + Gradle 4.1 遇到的一些坑及 ...
- android8.0华为荣耀8,一线|华为手机开启重大升级 荣耀成安卓8.0覆盖机型最多品牌...
[摘要]截至本次升级,荣耀手机率先完成最新Android系统与EMUI和海思麒麟处理器.以及主流移动应用的适配.成为最快升级Android 8.0且覆盖机型最多的国产手机品牌,100%覆盖2016年以 ...
最新文章
- 女朋友的Mysql练习题
- 猫眼电影评论_电影的人群意见和评论家的意见一样好吗?
- 暑期训练日志----2018.7.30
- 2018.09.07阿里巴巴笔试题
- 7月新的开始 - Axure学习05 - 元件库的创建
- ubuntu 15.10 升级 到Ubuntu 16.04.3 LTS
- bulk insert
- QQ浏览器该站点长时间无响应_消除CNZZ.站长统计代码被Chrome浏览器警告的操作...
- BIG5编码, GB编码(GB2312, GBK, ...), Unicode编码, UTF8, WideChar, MultiByte, Char 说明与区别
- 当代中国社会划分为十大阶层
- 用SPSS-Modeler分析银行信用风险评分方法
- 运动模糊/拖影的原因分析
- 如何将Excel文件转换WPS格式?
- 台式低速常温离心机S400操作规程
- hdu 1429	胜利大逃亡(续)
- 天玥系列微型计算机,【简讯】AMD正式发布RX 6000系列显卡;OPPO K7x宣布…
- 东野圭吾梦幻花读后感_《梦幻花》小说在线阅读-东野圭吾
- 第三章:IP地址加掩码讲解和ping命令运用
- 数据结构与算法JC班-左程云第一节课笔记(认识复杂度、对数器、二分法与异或运算)
- 智能AI抢了元宇宙的风头?