1. 问题描述:
本人在自定义的Android应用的顶部标题栏时出现以下错误信息:
06-30 20:33:17.810: E/AndroidRuntime(1940): FATAL EXCEPTION: main
06-30 20:33:17.810: E/AndroidRuntime(1940): Process: org.gditc.contacts, PID: 1940
06-30 20:33:17.810: E/AndroidRuntime(1940): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.gditc.contacts/org.gditc.contacts.view.MainActivity}: java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x12
06-30 20:33:17.810: E/AndroidRuntime(1940): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
06-30 20:33:17.810: E/AndroidRuntime(1940): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
06-30 20:33:17.810: E/AndroidRuntime(1940): at android.app.ActivityThread.access$800(ActivityThread.java:135)
06-30 20:33:17.810: E/AndroidRuntime(1940): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
06-30 20:33:17.810: E/AndroidRuntime(1940): at android.os.Handler.dispatchMessage(Handler.java:102)
06-30 20:33:17.810: E/AndroidRuntime(1940): at android.os.Looper.loop(Looper.java:136)
06-30 20:33:17.810: E/AndroidRuntime(1940): at android.app.ActivityThread.main(ActivityThread.java:5017)
06-30 20:33:17.810: E/AndroidRuntime(1940): at java.lang.reflect.Method.invokeNative(Native Method)
06-30 20:33:17.810: E/AndroidRuntime(1940): at java.lang.reflect.Method.invoke(Method.java:515)
06-30 20:33:17.810: E/AndroidRuntime(1940): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
06-30 20:33:17.810: E/AndroidRuntime(1940): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
06-30 20:33:17.810: E/AndroidRuntime(1940): at dalvik.system.NativeStart.main(Native Method)
06-30 20:33:17.810: E/AndroidRuntime(1940): Caused by: java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x12
06-30 20:33:17.810: E/AndroidRuntime(1940): at android.content.res.TypedArray.getDimensionPixelSize(TypedArray.java:464)
06-30 20:33:17.810: E/AndroidRuntime(1940): at android.view.ViewGroup$MarginLayoutParams.<init>(ViewGroup.java:6136)
06-30 20:33:17.810: E/AndroidRuntime(1940): at android.widget.LinearLayout$LayoutParams.<init>(LinearLayout.java:1831)
06-30 20:33:17.810: E/AndroidRuntime(1940): at android.widget.LinearLayout.generateLayoutParams(LinearLayout.java:1743)
06-30 20:33:17.810: E/AndroidRuntime(1940): at android.widget.LinearLayout.generateLayoutParams(LinearLayout.java:58)
06-30 20:33:17.810: E/AndroidRuntime(1940): at android.view.LayoutInflater.rInflate(LayoutInflater.java:757)
06-30 20:33:17.810: E/AndroidRuntime(1940): at android.view.LayoutInflater.parseInclude(LayoutInflater.java:839)
06-30 20:33:17.810: E/AndroidRuntime(1940): at android.view.LayoutInflater.rInflate(LayoutInflater.java:745)
06-30 20:33:17.810: E/AndroidRuntime(1940): at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
06-30 20:33:17.810: E/AndroidRuntime(1940): at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
06-30 20:33:17.810: E/AndroidRuntime(1940): at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
06-30 20:33:17.810: E/AndroidRuntime(1940): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290)
06-30 20:33:17.810: E/AndroidRuntime(1940): at android.app.Activity.setContentView(Activity.java:1929)
06-30 20:33:17.810: E/AndroidRuntime(1940): at org.gditc.contacts.view.MainActivity.onCreate(MainActivity.java:111)
06-30 20:33:17.810: E/AndroidRuntime(1940): at android.app.Activity.performCreate(Activity.java:5231)
06-30 20:33:17.810: E/AndroidRuntime(1940): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
06-30 20:33:17.810: E/AndroidRuntime(1940): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
06-30 20:33:17.810: E/AndroidRuntime(1940): ... 11 more
本人的自定义标题栏的布局文件为custom_title_bar.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:orientation="horizontal" >
<ImageView
android:id="@+id/title_bar_Icon"
android:layout_width="33dip"
android:layout_height="33dip"
android:layout_marginLeft="3dip"
android:contentDescription="@string/descImage"
android:src="@drawable/icon" />
<TextView
android:id="@+id/title_bar_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@+id/title_bar_Icon"
android:text="@string/app_name" />
<Button
android:id="@+id/title_bar_Search"
android:layout_width="33dip"
android:layout_height="33dip"
android:background="@drawable/search_bar_icon_normal" />
</LinearLayout>
2. 解决方法:
造成本人程序错误的原因原来是上面布局文件中的一句,删除该句即可
android:layout_marginRight="@+id/title_bar_Icon"
3. 如果出现该错误原因,多是布局文件的错误,仔细检查即可排除。祝你好运!