【发布时间】:2015-05-06 20:15:25
【问题描述】:
当我将主题添加到活动时,应用程序在使用下面的 logcat 打开该活动后崩溃
FATAL EXCEPTION: main
Process: com.jd.activity, PID: 16672
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.jd.activity/com.jd.activity.AlertActivity}: android.view.InflateException: Binary XML file line #37: Error inflating class com.android.internal.widget.ActionBarView
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2331)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2389)
at android.app.ActivityThread.access$900(ActivityThread.java:169)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1277)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5479)
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:1283)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #37: Error inflating class com.android.internal.widget.ActionBarView
at android.view.LayoutInflater.createView(LayoutInflater.java:626)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:702)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:769)
at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
at android.view.LayoutInflater.inflate(LayoutInflater.java:354)
at com.android.internal.policy.impl.PhoneWindow.generateLayout(PhoneWindow.java:3296)
at com.android.internal.policy.impl.PhoneWindow.installDecor(PhoneWindow.java:3359)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:362)
at android.app.Activity.setContentView(Activity.java:2031)
at com.jd.activity.AlertActivity.onCreate(AlertActivity.java:59)
at android.app.Activity.performCreate(Activity.java:5451)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2295)
... 11 more
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at android.view.LayoutInflater.createView(LayoutInflater.java:600)
... 25 more
Caused by: android.view.InflateException: Binary XML file line #23: Error inflating class <unknown>
at android.view.LayoutInflater.createView(LayoutInflater.java:626)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:675)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:700)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
at com.android.internal.widget.ActionBarView.initTitle(ActionBarView.java:1200)
at com.android.internal.widget.ActionBarView.setDisplayOptions(ActionBarView.java:982)
at com.android.internal.widget.ActionBarView.<init>(ActionBarView.java:398)
... 28 more
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at android.view.LayoutInflater.createView(LayoutInflater.java:600)
... 37 more
Caused by: java.lang.UnsupportedOperationException: Can't convert to color: type=0x2
at android.content.res.TypedArray.getColor(TypedArray.java:327)
at android.widget.TextView.<init>(TextView.java:1003)
at android.widget.TextView.<init>(TextView.java:908)
... 40 more
清单中的我的活动标签
<activity
android:name="com.jd.activity.AlertActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@style/Base.TextAppearance.AppCompat"
android:windowSoftInputMode="stateHidden|adjustPan" >
</activity>
添加主题后甚至应用程序崩溃
android:theme="@style/MyTheme.ActionBar.TitleTextStyle"
当我删除主题行时,效果很好。
我已将 android-support-v7-appcompat 添加到项目的构建路径中,并且我已从 sdk\extras\android\v7 导入该应用程序,并勾选了“将项目复制到工作场所”。
也在清单中
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="21" />
我的最终目标是添加 ActionBar。有没有其他简单的方法可以在不使用主题的情况下添加操作栏?
【问题讨论】:
-
试试
android:theme="@style/Theme.AppCompat" -
嘿.. 它解决了 Theme.AppCompat 的崩溃问题,但那时我看不到 ActionBar。请告诉我我必须使用什么主题来添加带有我的颜色的 ActionBar 和 ActionBar 上的按钮以在单击该按钮后打开抽屉
-
@ShirishHerwade 使用工具栏android-developers.blogspot.in/2014/10/…
-
试试这个主题
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> </style>并将这个主题设置为你的活动 -
在 Raghunandan 提供的链接中,写着“你的所有活动都必须从 ActionBarActivity 扩展”。是真的吗??,因为我在扩展Activity。
标签: android exception crash android-actionbar android-theme