我有一个相对简单的安卓应用程序,使用支持库为运行在低于11版本API的设备提供Actionbar,因此我的主要活动扩展了AppCompatActivity。
我的当前应用程序主题如下:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
</style>
经过一些测试并确保应用程序如预期工作后,我决定为运行在14及以上API级别设备上的主题设置如下:
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<!-- Customize your theme here. -->
</style>
自从启动以来,该应用程序一直崩溃。
logcat显示正在抛出异常,其内容如下:
你需要使用Theme.AppCompat主题(或派生主题)与此活动。
这是否意味着我必须仅使用AppCompat主题,而不考虑设备的API?
如果不是,那么我该如何解决此问题?
Theme.AppCompat
而不是Theme.Holo
。我不清楚您使用Theme.Holo
能够实现什么“花哨”的效果。虽然有旧版的已被弃用的操作栏后移库(例如ActionBarSherlock),但目前难以推荐它们。或者,由于Android 2.x在Google Play生态系统中的份额不到5%,将您的minSdkVersion
设置为15并切换到本机操作栏。 - CommonsWareAppCompat
主题被设计为在一定限度内模仿 Android 5.0+ 默认的Theme.Material
,你对“现代”的定义颇有趣。 - CommonsWare