java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x1
android.content.res.TypedArray.getDimensionPixelSize(TypedArray.java:463)
at android.widget.ImageView.<init>(ImageView.java:137)
at android.widget.ImageButton.<init>(ImageButton.java:85)
at android.widget.ImageButton.<init>(ImageButton.java:81)
上面是错误,下面是错误的布局。我读到的一切都说xml需要有一个父布局,我的布局就是这样。还有什么可能是错的?
这是我在启动应用时启动的主要活动的布局
这是我的最小/目标
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/app_name"
android:id="@+id/textView"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"
android:textSize="32sp"
android:layout_centerHorizontal="true"
android:background="#292929"
android:gravity="center_vertical|center_horizontal"
android:minHeight="@dimen/header_height" />
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/apply"
android:id="@+id/apply"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"
android:textSize="24sp"
android:background="#3fb0ff"
android:layout_weight="1" />
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/wallpaper"
android:id="@+id/wallpapers"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"
android:textSize="24sp"
android:background="#3994d8"
android:layout_weight="1" />
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/request_icons"
android:id="@+id/requesticons"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"
android:textSize="24sp"
android:background="#3376b4"
android:layout_weight="1" />
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/view_icons"
android:id="@+id/viewicons"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"
android:textSize="24sp"
android:background="#2c5f95"
android:layout_weight="1" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentEnd="false"
android:layout_alignParentStart="false"
android:measureWithLargestChild="false"
android:orientation="horizontal">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/rate"
android:maxHeight="100dp"
android:background="@color/transparent"
android:src="@drawable/main_button_bottom_rate"
android:scaleType="fitXY"
android:layout_weight="1" />
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/gplus"
android:maxHeight="100dp"
android:src="@drawable/main_button_bottom_gplus"
android:layout_weight="1"
android:background="@color/transparent"
android:scaleType="fitXY" />
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/morework"
android:layout_weight="1"
android:background="@color/transparent"
android:maxHeight="100dp"
android:src="@drawable/main_button_bottom_morework"
android:scaleType="fitXY" />
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/contact"
android:background="@color/transparent"
android:layout_weight="1"
android:maxHeight="100dp"
android:src="@drawable/main_button_bottom_contact"
android:scaleType="fitXY" />
</LinearLayout>
</LinearLayout>
答案 0 :(得分:0)
你的问题出在你的ImageButtons上......我不认为XML inflater对你同时使用权重和maxHeight感到满意......但它可能会因为你的ImageButtons上的一个属性而通过是为了更高的API。检查开发人员指南中的所有内容,或逐个删除它们,直到崩溃消失。看起来你的所有ImageButton大部分都是相同的,所以我也把它拿到一个进行测试......
public int getDimensionPixelSize(int index, int defValue) {
index *= AssetManager.STYLE_NUM_ENTRIES;
final int[] data = mData;
final int type = data[index+AssetManager.STYLE_TYPE];
if (type == TypedValue.TYPE_NULL) {
return defValue;
} else if (type == TypedValue.TYPE_DIMENSION) {
return TypedValue.complexToDimensionPixelSize(
data[index+AssetManager.STYLE_DATA], mResources.mMetrics);
}
throw new UnsupportedOperationException("Can't convert to dimension: type=0x" // Line 463 of TypedArray.java
+ Integer.toHexString(type));
}