Java appcompat库v7的ActionBar(ava.lang.IllegalStateException:您需要使用Theme.appcompat主题)

Java appcompat库v7的ActionBar(ava.lang.IllegalStateException:您需要使用Theme.appcompat主题),java,android,android-actionbar,android-appcompat,Java,Android,Android Actionbar,Android Appcompat,我想用Android v7 appcompat库实现一个ActionBar,以支持Android>=2.1的ActionBar 我的应用程序以MainActivity开始,它包含一个黑色的操作栏、一些信息和一个开始按钮 下一个活动是MenuActivity,它还包含暗操作栏和一些可以滑动的操作栏选项卡 这是带有DarkActionBar主题的my manifest.xml: <application android:icon="@mipmap/ic_launcher" a

我想用Android v7 appcompat库实现一个ActionBar,以支持Android>=2.1的ActionBar

我的应用程序以MainActivity开始,它包含一个黑色的操作栏、一些信息和一个开始按钮

下一个活动是MenuActivity,它还包含暗操作栏和一些可以滑动的操作栏选项卡


这是带有DarkActionBar主题的my manifest.xml

<application
    android:icon="@mipmap/ic_launcher"
    android:label="Hello World"
    android:theme="@android:style/Theme.Holo.Light.DarkActionBar">

    <activity
        android:name=".MainActivity"
        android:label="Hello World">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
        android:name=".gui.MenuActivity"
        android:label="Hello World" />

</application>

如果我启动应用程序,主活动将正常工作,但在单击开始按钮并加入菜单活动后,我会出现以下错误:

java.lang.RuntimeException:无法启动活动 ComponentInfo{myapp.gui.MenuActivity}: java.lang.IllegalStateException:您需要使用Theme.AppCompat 此活动的主题(或后代)

我找到了一些解决办法,但没有适合我的问题。有人能帮我吗

我也想知道我的解决方案是最新的还是过时的


谢谢:)

@style/Theme.AppCompat.Light.DarkActionBar替换android manifest.xml中的
@android:style/Theme.Holo.Light.DarkActionBar

确保build.gradle中有以下依赖项:
compile'com.android.support:appcompat-v7:22.1.1'


编辑:检查Knossos的第一条评论

如果要在
main活动中扩展
ActionBarActivity
,则还必须更改
values-v11
中的父主题。 因此
values-v11
中的
style.xml
将-

 <?xml version="1.0" encoding="utf-8"?>
 <resources>
    <style name="QueryTheme" parent="@style/Theme.AppCompat">
    <!-- Any customizations for your app running on devices with Theme.Holo here -->
    </style>
 </resources>


并确保将
android manifest.xml
中的
@android:style/Theme.Holo.Light.darkaActionBar
替换为
style/Theme.AppCompat.Light.darkaActionBar

此外,如果您在主题中也需要自己的样式,您可以将主题的父级设置为@style/Theme.AppCompat.Light.darkaActionBar如果我这样做,MainActivity的操作栏消失,3点菜单的下拉菜单出现在操作栏中,而不是中间it@Stampy然后将
ActionBarActivity
替换为
AppCompatActivity
。这解决了我在MainActivity中遇到的第一个问题,谢谢。但是actionbar的下拉菜单仍然显示在actionbar中,而不是在下面it@Karim问题:
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
    <style name="QueryTheme" parent="@style/Theme.AppCompat">
    <!-- Any customizations for your app running on devices with Theme.Holo here -->
    </style>
 </resources>