首页 > 代码库 > 【Android】Theme.AppCompat相关
【Android】Theme.AppCompat相关
错误日志
You need to use a Theme.AppCompat theme (or descendant) with this activity
可能出现的几种情况
使用了 ActionBarActivity,但是没有使用 Theme.AppCompat 主题
在安装 Android 5 系统的机器上使用
出现的原因
ActionBarActivity 在 Support Library V7 里面,强制主题必须是 Theme.AppCompat 或者其后代,
如果使用了 ActionBarActivity 但是没有使用 Theme.AppCompat 的话就会崩溃
2.当使用 Android studio 创建工程的时候,会自动创建res/values-v21/styles.xml文件,内容如下:<resources> <style name="AppTheme" parent="android:Theme.Material.Light"> </style> </resources>
这里没有使用 Theme.AppCompat 主题,而且也不存在 Theme.AppCompat.Material 之类的主题,
因此,在 Android 5 机器上使用的时候,会使用 res/values-v21/styles.xml 里面的主题定义,因此与 ActionBarActivity 冲突,所以崩溃
解决办法
对于第一种情况,直接将主题修改为 Theme.AppCompat 就行了
对于第二种情况,可以删掉values-v21/styles.xml里面的定义,或者将里面的定义修改为
<resources> <style name="AppTheme" parent="Theme.AppCompat"> </style> </resources>
补充知识
Support Library 里面的 Theme.AppCompat 是继承的 Platform.AppCompat,因此,对于 Android 5 系统来说,Theme.AppCompat本身就是继承的 Material 风格。
因此,如果想使用 Material 设计,并没有必要去定义一个新的主题,所以感觉 Android studio 在创建工程的时候有点问题。
Android分享 Q群:315658668
【Android】Theme.AppCompat相关