##错误日志
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