当我在actionbar中做任何更改时,android中的应用程序将关闭
这是舱单:当我在actionbar中做任何更改时,android中的应用程序将关闭,android,android-actionbar,android-theme,android-styles,Android,Android Actionbar,Android Theme,Android Styles,这是舱单: <application android:allowBackup="true" android:icon="@drawable/professor" android:label="@string/app_name" android:theme="@style/AppTheme" > 为什么android studio强迫我使用这个 Android Studio不会“强迫”你做任何事情 我猜您在Android Studio中创建了一个新项目
<application
android:allowBackup="true"
android:icon="@drawable/professor"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
为什么android studio强迫我使用这个
Android Studio不会“强迫”你做任何事情
我猜您在Android Studio中创建了一个新项目,并在其中创建了一个新活动。此类项目的模板将项目设置为使用appcompat-v7
及其ActionBarActivity
、Theme.appcompat
等。这将为您提供一个操作栏,该操作栏可以恢复到API级别7,而本机操作栏只能恢复到API级别11。appcompat-v7的动作栏类似于Android 5.0自带的材质设计动作栏
你不必使用这些。它仅仅是从模板中提供给你的东西。如果不喜欢模板中的内容,则需要更改从模板生成的文件。这与模板在任何其他工具中的工作方式没有区别,无论是开发工具(如网站生成器)还是办公生产力工具(如Microsoft Word)
在这种情况下,欢迎您:
- 从
文件中的build.gradle
依赖项中删除
行。在典型的Android Studio项目中,该文件将位于appcompat-v7
模块目录中app/
- 将活动更改为继承自
,而不是活动
操作活动
- 将主题更改为不使用
theme.AppCompat
- 更改菜单资源(
,在典型的Android Studio项目中)以app/src/main/res/menu/*
前缀替换为app:
前缀(例如,Android:
变为app:showAsAction
)Android:showAsAction
然后,您将不再使用appcompat-v7。您将在API级别11+上使用本机操作栏,如果
minSdkVersion
低于11,则返回旧式选项菜单。您可以让您的主题继承自Android 5.0+设备的theme.Holo
系列,也可以选择继承自Android 5.0+设备的theme.Material
(例如,在res/values-v21/styles.xml文件中)。使用LogCat查看与崩溃相关的Java堆栈跟踪:我发布了LogCat,我照他们说的做了,使用了Theme.appbattle,但仍然是同样的错误@Commonware“我照他们说的做了,使用了Theme.AppCombat,但仍然是同一个错误!”——问题中的代码与错误匹配,表明您没有使用Theme.AppCompat
。下面是一个成功使用了Theme.AppCompat
:非常感谢:)的项目目录,但是为什么我应该只使用Theme.AppCombat呢?我想用Theme.holo等。。还有其他人!为什么android studio强迫我使用这个?这些说明也帮助我解决了这个问题。Thx虽然它是非常混乱的,因为它提供了一个模板,而不是预期的工作。最重要的是,这个例子的说明也是错误的。再次感谢您的帮助,我相信当您了解所有这些文件是如何关联的时候,这一点是显而易见的。
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">#DC980005</item>
</style>
01-24 16:52:47.951 28973-28973/com.example.user.ascs E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.user.ascs, PID: 28973
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.user.ascs/com.example.user.ascs.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2305)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2363)
at android.app.ActivityThread.access$900(ActivityThread.java:161)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1265)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5356)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
at dalvik.system.NativeStart.main(Native Method)