UnsupportedOperationException: Can't convert to dimension: type=0x1

Pratik Butani picture Pratik Butani · Sep 11, 2013 · Viewed 52k times · Source

In Android I got following Error in the emulator and some mobile device but not in Tablet:

I can't understand what is the error actually?

I have searched many tutorials but can't find any solution.

Please help me to solve this.

Note: In this application, I have used ActionbarSherlock and theme, may i got because of that library or any other problem?

My Error Log is:

09-11 17:52:57.342: E/AndroidRuntime(9935): FATAL EXCEPTION: main
09-11 17:52:57.342: E/AndroidRuntime(9935): android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.view.LayoutInflater.createView(LayoutInflater.java:613)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:371)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.widget.AbsSpinner.onMeasure(AbsSpinner.java:193)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.widget.Spinner.onMeasure(Spinner.java:439)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.view.View.measure(View.java:15518)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:681)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.view.View.measure(View.java:15518)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:1217)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.widget.ScrollView.onMeasure(ScrollView.java:321)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.view.View.measure(View.java:15518)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.view.View.measure(View.java:15518)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:847)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.view.View.measure(View.java:15518)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2176)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.view.View.measure(View.java:15518)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1874)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1089)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1265)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:989)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4351)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.view.Choreographer.doCallbacks(Choreographer.java:562)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.view.Choreographer.doFrame(Choreographer.java:532)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.os.Handler.handleCallback(Handler.java:725)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.os.Handler.dispatchMessage(Handler.java:92)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.os.Looper.loop(Looper.java:137)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.app.ActivityThread.main(ActivityThread.java:5041)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at java.lang.reflect.Method.invokeNative(Native Method)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at java.lang.reflect.Method.invoke(Method.java:511)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at dalvik.system.NativeStart.main(Native Method)
09-11 17:52:57.342: E/AndroidRuntime(9935): Caused by: java.lang.reflect.InvocationTargetException
09-11 17:52:57.342: E/AndroidRuntime(9935):     at java.lang.reflect.Constructor.constructNative(Native Method)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.view.LayoutInflater.createView(LayoutInflater.java:587)
09-11 17:52:57.342: E/AndroidRuntime(9935):     ... 45 more
09-11 17:52:57.342: E/AndroidRuntime(9935): Caused by: java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x1
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.content.res.TypedArray.getDimensionPixelSize(TypedArray.java:463)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.widget.TextView.<init>(TextView.java:916)
09-11 17:52:57.342: E/AndroidRuntime(9935):     at android.widget.TextView.<init>(TextView.java:578)
09-11 17:52:57.342: E/AndroidRuntime(9935):     ... 48 more

My XML Layout file is:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:panel="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="@dimen/activity_vertical_margin"
        android:layout_marginLeft="@dimen/other_activity_horizontal_margin"
        android:layout_marginRight="@dimen/other_activity_horizontal_margin"
        android:layout_marginTop="@dimen/activity_vertical_margin"
        android:orientation="vertical" >

        <EditText
            android:id="@+id/custDetailsNameEditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:hint="@string/name_cust_all_add"
            android:inputType="textPersonName"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <EditText
            android:id="@+id/custDetailsEmailEditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/custDetailsNameEditText"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="15dp"
            android:hint="@string/email_cust_all_add"
            android:inputType="textEmailAddress"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <Spinner
            android:id="@+id/custDetailsDistributorSpinner"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/custDetailsEmailEditText"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="15dp"
            android:entries="@array/slide_menu_items"
            android:prompt="@string/select_distributor_prompt_add"
            android:spinnerMode="dialog" >
        </Spinner>

        <EditText
            android:id="@+id/custDetailsAddress1TitleEditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/custDetailsDistributorSpinner"
            android:layout_marginTop="15dp"
            android:hint="@string/address_1_cust_all_add"
            android:inputType="textPostalAddress"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <EditText
            android:id="@+id/custDetailsAddress2TitleEditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/custDetailsAddress1TitleEditText"
            android:layout_marginTop="15dp"
            android:hint="@string/address_2_cust_all_add"
            android:inputType="textPostalAddress"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <EditText
            android:id="@+id/custDetailsAddress3TitleEditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/custDetailsAddress2TitleEditText"
            android:layout_marginTop="15dp"
            android:hint="@string/address_3_cust_all_add"
            android:inputType="textPostalAddress"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <Spinner
            android:id="@+id/custDetailsCompanyAreaSpinner"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/custDetailsAddress3TitleEditText"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="15dp"
            android:entries="@array/slide_menu_items"
            android:prompt="@string/select_company_area_prompt_add"
            android:spinnerMode="dialog" 
            android:fastScrollEnabled="true"
            >
        </Spinner>

        <EditText
            android:id="@+id/custDetailsPincodeEditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/custDetailsCompanyAreaSpinner"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="15dp"
            android:hint="@string/pincode_cust_all_add"
            android:inputType="number"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <EditText
            android:id="@+id/custDetailsPhone1EditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/custDetailsPincodeEditText"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="15dp"
            android:hint="@string/phone_1_cust_all_add"
            android:inputType="phone"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <EditText
            android:id="@+id/custDetailsPhone2EditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/custDetailsPhone1EditText"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="15dp"
            android:hint="@string/phone_2_cust_all_add"
            android:inputType="phone"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <EditText
            android:id="@+id/custDetailsMobileNo1EditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/custDetailsPhone2EditText"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="15dp"
            android:hint="@string/mobile_no_1_cust_all_add"
            android:inputType="phone"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <EditText
            android:id="@+id/custDetailsMobileNo2EditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/custDetailsMobileNo1EditText"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="15dp"
            android:hint="@string/mobile_no_2_cust_all_add"
            android:inputType="phone"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <EditText
            android:id="@+id/custDetailsContactPerson1EditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/custDetailsMobileNo2EditText"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="15dp"
            android:hint="@string/contact_person_1_cust_all_add"
            android:inputType="text"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <EditText
            android:id="@+id/custDetailsContactPerson2EditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/custDetailsContactPerson1EditText"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="15dp"
            android:hint="@string/contact_person_2_cust_all_add"
            android:inputType="text"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <EditText
            android:id="@+id/custDetailsTinNoEditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/custDetailsContactPerson2EditText"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="15dp"
            android:hint="@string/tin_no_cust_all_add"
            android:inputType="text"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <EditText
            android:id="@+id/custDetailsCstNoEditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/custDetailsTinNoEditText"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="15dp"
            android:hint="@string/cst_no_cust_all_add"
            android:inputType="text"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <RadioGroup
            android:id="@+id/custDetailsVTVRRadioGroup"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/custDetailsCstNoEditText"
            android:layout_marginTop="15dp"
            android:orientation="horizontal" >

            <TextView
                android:id="@+id/custDetailsVTVRLableTextView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/vt_vr_cust_all_add"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <RadioButton
                android:id="@+id/custDetailsVTRadioButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:checked="true"
                android:text="@string/vt_cust_all_add" />

            <RadioButton
                android:id="@+id/custDetailsVRRadioButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/vr_cust_all_add" />
        </RadioGroup>

        <RadioGroup
            android:id="@+id/custDetailsCFormRadioGroup"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/custDetailsVTVRRadioGroup"
            android:layout_marginTop="15dp"
            android:orientation="horizontal" >

            <TextView
                android:id="@+id/custDetailsCFormLableTextView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/c_form_cust_add_all"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <RadioButton
                android:id="@+id/custDetailsCFormYesRadioButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:checked="true"
                android:text="@string/yes_cust_add_all" />

            <RadioButton
                android:id="@+id/custDetailsCFormNoRadioButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/no_cust_add_all" />
        </RadioGroup>
    </RelativeLayout>

</ScrollView>

styles.xml in values folder:

<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <!--
        Base application theme, dependent on API level. This theme is replaced
        by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
    -->
    <style name="AppBaseTheme" parent="android:Theme.Light">
        <!--
            Theme customizations available in newer API levels can go in
            res/values-vXX/styles.xml, while customizations related to
            backward-compatibility can go here.
        -->
    </style>

    <style name="SlideBarTheme" parent="@style/Theme.Sherlock.NoActionBar">
        <item name="android:background">@drawable/slide_bg</item>
        <item name="android:cacheColorHint">@android:color/transparent</item>
        <item name="android:choiceMode">singleChoice</item>
    </style>

    <style name="ActivityTheme" parent="@style/Theme.Sherlock.Light">
        <item name="android:textColor">@color/activity_text</item>
        <item name="android:background">@color/activity_background</item>
    </style>

    <!-- For Widget -->

    <style name="MyAndroidTheme" parent="@style/Theme.Sherlock.Light.DarkActionBar">
        <item name="android:editTextStyle">@style/EditTextAppTheme</item>
        <item name="android:autoCompleteTextViewStyle">@style/AutoCompleteTextViewAppTheme</item>
        <item name="android:checkboxStyle">@style/CheckBoxAppTheme</item>
        <item name="android:spinnerStyle">@style/SpinnerAppTheme</item>
        <item name="android:dropDownSpinnerStyle">@style/SpinnerAppTheme.DropDown</item>
        <item name="android:spinnerDropDownItemStyle">@style/SpinnerDropDownItemAppTheme</item>
        <item name="android:listViewStyle">@style/ListViewAppTheme</item>
        <item name="android:listViewWhiteStyle">@style/ListViewAppTheme.White</item>
        <item name="android:spinnerItemStyle">@style/SpinnerItemAppTheme</item>
    </style>

</resources>

styles.xml in values-11 folder:

    <resources>

    <!--
        Base application theme for API 11+. This theme completely replaces
        AppBaseTheme from res/values/styles.xml on API 11+ devices.
    -->

    <!-- API 11 theme customizations can go here. -->
    <style name="MyAndroidTheme" parent="android:Theme.Holo.Light.DarkActionBar">
        <item name="android:editTextBackground">@drawable/edit_text_holo_light</item>
        <item name="android:autoCompleteTextViewStyle">@style/AutoCompleteTextViewAppTheme</item>
        <item name="android:listChoiceIndicatorMultiple">@drawable/btn_check_holo_light</item>
        <item name="android:dropDownSpinnerStyle">@style/SpinnerAppTheme</item>
        <item name="android:listChoiceBackgroundIndicator">@drawable/list_selector_holo_light</item>
        <item name="android:activatedBackgroundIndicator">@drawable/activated_background_holo_light</item>
    </style>

</resources>

styles.xml in values-14 folder:

<resources>

    <!--
        Base application theme for API 14+. This theme completely replaces
        AppBaseTheme from BOTH res/values/styles.xml and
        res/values-v11/styles.xml on API 14+ devices.
    -->
    <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
        <!-- API 14 theme customizations can go here. -->
    </style>

</resources>

And also I have a custom theme file:

In values folder named styles_apptheme.xml and styles_myactionbar.xml, In values-v11 folder named styles_apptheme.xml, In values-v14 folder named styles_myactionbar.xml

What should I change?

Answer

Pratik Butani picture Pratik Butani · Sep 17, 2013

After 2 days I found the solution; from the layout as defined in my question, I have a Spinner which is bound with a custom TextView:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/listTextViewSpinner"
    ...
    android:textSize="@dimen/spinner_list_item_text_size"
    ... />

Here, I have an extracted dimension resource: @dimen/spinner_list_item_text_size.

This has been defined in dimens.xml in the following directories:

  • values-sw600dp
  • values-sw720dp-land

but crucially I forgot to define it in

  • values

After defining the resource (@dimen/spinner_list_item_text_size) in values/dimens.xml,it works successfully.