6

I haven't changed anything relating to my settings between this build and the last one which works.

The crash occurs on API 16 whereas on API 23 it works fine. This is in Genymotion. I do not have a lower real device accessible.

EDIT - I have since tested it on a Sony Xperia U running 4.0.4 and the same crash occurs.

I believe I have tracked it down to being due to upgrading the support libraries to 23.2.0 as I have since downgraded and it works again.

Anyone else experiencing this?

03-01 18:36:20.693 1846-1846/? E/AndroidRuntime: FATAL EXCEPTION: main
                                                 android.view.InflateException: Binary XML file line #19: Error inflating class android.widget.CheckBox
                                                     at android.view.LayoutInflater.createView(LayoutInflater.java:613)
                                                     at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
                                                     at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)
                                                     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
                                                     at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
                                                     at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
                                                     at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
                                                     at android.preference.Preference.onCreateView(Preference.java:480)
                                                     at android.preference.Preference.getView(Preference.java:451)
                                                     at android.preference.PreferenceGroupAdapter.getView(PreferenceGroupAdapter.java:221)
                                                     at android.widget.AbsListView.obtainView(AbsListView.java:2267)
                                                     at android.widget.ListView.makeAndAddView(ListView.java:1769)
                                                     at android.widget.ListView.fillDown(ListView.java:672)
                                                     at android.widget.ListView.fillFromTop(ListView.java:733)
                                                     at android.widget.ListView.layoutChildren(ListView.java:1608)
                                                     at android.widget.AbsListView.onLayout(AbsListView.java:2102)
                                                     at android.view.View.layout(View.java:13754)
                                                     at android.view.ViewGroup.layout(ViewGroup.java:4362)
                                                     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649)
                                                     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1507)
                                                     at android.widget.LinearLayout.onLayout(LinearLayout.java:1420)
                                                     at android.view.View.layout(View.java:13754)
                                                     at android.view.ViewGroup.layout(ViewGroup.java:4362)
                                                     at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
                                                     at android.view.View.layout(View.java:13754)
                                                     at android.view.ViewGroup.layout(ViewGroup.java:4362)
                                                     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649)
                                                     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1507)
                                                     at android.widget.LinearLayout.onLayout(LinearLayout.java:1420)
                                                     at android.view.View.layout(View.java:13754)
                                                     at android.view.ViewGroup.layout(ViewGroup.java:4362)
                                                     at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
                                                     at android.view.View.layout(View.java:13754)
                                                     at android.view.ViewGroup.layout(ViewGroup.java:4362)
                                                     at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1866)
                                                     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1687)
                                                     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:998)
                                                     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4212)
                                                     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
                                                     at android.view.Choreographer.doCallbacks(Choreographer.java:555)
                                                     at android.view.Choreographer.doFrame(Choreographer.java:525)
                                                     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
                                                     at android.os.Handler.handleCallback(Handler.java:615)
                                                     at android.os.Handler.dispatchMessage(Handler.java:92)
                                                     at android.os.Looper.loop(Looper.java:137)
                                                     at android.app.ActivityThread.main(ActivityThread.java:4745)
                                                     at java.lang.reflect.Method.invokeNative(Native Method)
                                                     at java.lang.reflect.Method.invoke(Method.java:511)
                                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
                                                     at dalvik.system.NativeStart.main(Native Method)
                                                  Caused by: java.lang.reflect.InvocationTargetException
                                                     at java.lang.reflect.Constructor.constructNative(Native Method)
                                                     at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
                                                     at android.view.LayoutInflater.createView(LayoutInflater.java:587)
                                                     at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
                                                     at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660) 
                                                     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685) 
                                                     at android.view.LayoutInflater.inflate(LayoutInflater.java:466) 
                                                     at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
                                                     at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
                                                     at android.preference.Preference.onCreateView(Preference.java:480) 
                                                     at android.preference.Preference.getView(Preference.java:451) 
                                                     at android.preference.PreferenceGroupAdapter.getView(PreferenceGroupAdapter.java:221) 
                                                     at android.widget.AbsListView.obtainView(AbsListView.java:2267) 
                                                     at android.widget.ListView.makeAndAddView(ListView.java:1769) 
                                                     at android.widget.ListView.fillDown(ListView.java:672) 
                                                     at android.widget.ListView.fillFromTop(ListView.java:733) 
                                                     at android.widget.ListView.layoutChildren(ListView.java:1608) 
                                                     at android.widget.AbsListView.onLayout(AbsListView.java:2102) 
                                                     at android.view.View.layout(View.java:13754) 
                                                     at android.view.ViewGroup.layout(ViewGroup.java:4362) 
                                                     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649) 
                                                     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1507) 
                                                     at android.widget.LinearLayout.onLayout(LinearLayout.java:1420) 
                                                     at android.view.View.layout(View.java:13754) 
                                                     at android.view.ViewGroup.layout(ViewGroup.java:4362) 
                                                     at android.widget.FrameLayout.onLayout(FrameLayout.java:448) 
                                                     at android.view.View.layout(View.java:13754) 
                                                     at android.view.ViewGroup.layout(ViewGroup.java:4362) 
                                                     at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649) 
                                                     at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1507) 
                                                     at android.widget.LinearLayout.onLayout(LinearLayout.java:1420) 
                                                     at android.view.View.layout(View.java:13754) 
                                                     at android.view.ViewGroup.layout(ViewGroup.java:4362) 
                                                     at android.widget.FrameLayout.onLayout(FrameLayout.java:448) 
                                                     at android.view.View.layout(View.java:13754) 
                                                     at android.view.ViewGroup.layout(ViewGroup.java:4362) 
                                                     at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1866) 
                                                     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1687) 
                                                     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:998) 
                                                     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4212) 
                                                     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725) 
                                                     at android.view.Choreographer.doCallbacks(Choreographer.java:555) 
                                                     at android.view.Choreographer.doFrame(Choreographer.java:525) 
                                                     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711) 
                                                     at android.os.Handler.handleCallback(Handler.java:615) 
                                                     at android.os.Handler.dispatchMessage(Handler.java:92) 
                                                     at android.os.Looper.loop(Looper.java:137) 
                                                     at android.app.ActivityThread.main(ActivityThread.java:4745) 
                                                     at java.lang.reflect.Method.invokeNative(Native Method) 
                                                     at java.lang.reflect.Method.invoke(Method.java:511) 
                                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
                                                     at dalvik.system.NativeStart.main(Native Method) 
                                                  Caused by: android.content.res.Resources$NotFoundException: File res/drawable/abc_btn_check_material.xml from drawable resource ID #0x7f020003
                                                     at android.content.res.Resources.loadDrawable(Resources.java:1918)
                                                     at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
                                                     at android.widget.CompoundButton.<init>(CompoundButton.java:74)
                                                     at android.widget.CheckBox.<init>(CheckBox.java:68)
                                                    at android.widget.CheckBox.<init>(C
StuStirling
  • 15,601
  • 23
  • 93
  • 150
  • 1
    I have the same issue. It seems to be a bug in appcompat 23.2.0. See also http://stackoverflow.com/questions/35618098/android-support-libraries-23-2-0-cause-app-to-crash?rq=1 – Valelik Mar 02 '16 at 17:41
  • Thanks for this question and update. Saved me a lot of time and effort tracking down the same issue. For info there is now a version of the support libraries (23.2.1) in which the problem disappears. – Simon Hutton Mar 23 '16 at 15:16

3 Answers3

0

Need to make changes in your gradle.

See My answer for same issue: File res/drawable/abc_ic_ab_back_material.xml from drawable resource ID #0x7f020016

Hope its helps you.

Community
  • 1
  • 1
pRaNaY
  • 24,642
  • 24
  • 96
  • 146
  • Unfortunately this does not work for me. Tried both just in case I got my gradle version wrong but it still doesn't work. – StuStirling Mar 02 '16 at 09:24
0

What is helped me is extending AppCompatActivity insted of Activity in my preferences screen

deviant
  • 3,539
  • 4
  • 32
  • 47
0

As you are using the support library, I assume that there is no issue if you use the AppCompatCheckbox instead of the standard once.

You can do this with a custom layout that is pretty much identical to the standard one but replaces the Checkbox with the AppCompatversion.

As we are no longer using the standard Checkbox layout where the error occurs, the crash no longer happens.

I prefer this method even when the support library is working correctly as it allows me to replace the AppCompatCheckbox with an AppCompatRadioButton when the need arises.

PreferenceScreen xml:

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

    <CheckBoxPreference android:layout="@layout/custom_checkbox_pref" android:key="whatever" android:title="The Title"/>

</PreferenceScreen>

Layout: custom_checkbox_pref.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:gravity="center_vertical"
          android:minHeight="?android:attr/listPreferredItemHeight"
          android:paddingEnd="?android:attr/scrollbarSize"
          tools:ignore="RtlSymmetry">

<RelativeLayout
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginBottom="6dp"
    android:layout_marginEnd="6dp"
    android:layout_marginStart="15dp"
    android:layout_marginTop="6dp"
    android:layout_weight="1">

    <TextView
        android:id="@android:id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ellipsize="marquee"
        android:fadingEdge="horizontal"
        android:singleLine="true"
        android:textAppearance="?android:attr/textAppearanceLarge"
        tools:text="Title"/>

    <TextView
        android:id="@android:id/summary"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignStart="@android:id/title"
        android:layout_below="@android:id/title"
        android:maxLines="4"
        android:textAppearance="?android:attr/textAppearanceSmall"
        tools:text="Summary"/>

</RelativeLayout>

<android.support.v7.widget.AppCompatCheckBox
    android:id="@+android:id/checkbox"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:clickable="false"
    android:focusable="false"/>

</LinearLayout>
Kuffs
  • 35,581
  • 10
  • 79
  • 92