AppBarLayout.onCreateDrawableState NullPointerException: attempt to get the length of a null array

We encounter too many of these crashes, mainly on Samsung 6.0.1 devices. We even have the same device with the same version of os and still cannot play it on our own. We get other inflation exceptions, probably related.

Is there a workaround for this problem?

lib support version - 24.2.1

Here is the full stack trace:

Exception android.view.InflateException: Binary XML file line #21: Binary XML file line #2: Error inflating class android.support.design.widget.AppBarLayout android.view.LayoutInflater.inflate (LayoutInflater.java:551) android.view.LayoutInflater.inflate (LayoutInflater.java:429) com.myapp.profile.ProfileFragment.onCreateView (ProfileFragment.java:163) android.support.v4.app.Fragment.performCreateView (Fragment.java:2080) android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1108) android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1290) android.support.v4.app.BackStackRecord.run (BackStackRecord.java:801) android.support.v4.app.FragmentManagerImpl.execSingleAction (FragmentManager.java:1638) android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss (BackStackRecord.java:679) android.support.v4.app.FragmentPagerAdapter.finishUpdate (FragmentPagerAdapter.java:143) android.support.v4.view.ViewPager.populate (ViewPager.java:1240) android.support.v4.view.ViewPager.populate (ViewPager.java:1088) android.support.v4.view.ViewPager.onMeasure (ViewPager.java:1614) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.support.design.widget.CoordinatorLayout.onMeasureChild (CoordinatorLayout.java:700) android.support.design.widget.CoordinatorLayout.onMeasure (CoordinatorLayout.java:767) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.widget.LinearLayout.measureChildBeforeLayout (LinearLayout.java:1464) android.widget.LinearLayout.measureVertical (LinearLayout.java:747) android.widget.LinearLayout.onMeasure (LinearLayout.java:629) android.view.View.measure (View.java:20166) com.sothree.slidinguppanel.SlidingUpPanelLayout.onMeasure (SlidingUpPanelLayout.java:804) android.view.View.measure (View.java:20166) android.support.v4.widget.DrawerLayout.onMeasure (DrawerLayout.java:1085) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.widget.FrameLayout.onMeasure (FrameLayout.java:194) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.widget.FrameLayout.onMeasure (FrameLayout.java:194) android.support.v7.widget.ContentFrameLayout.onMeasure (ContentFrameLayout.java:135) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.widget.FrameLayout.onMeasure (FrameLayout.java:194) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.widget.FrameLayout.onMeasure (FrameLayout.java:194) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.widget.LinearLayout.measureChildBeforeLayout (LinearLayout.java:1464) android.widget.LinearLayout.measureVertical (LinearLayout.java:747) android.widget.LinearLayout.onMeasure (LinearLayout.java:629) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.widget.FrameLayout.onMeasure (FrameLayout.java:194) com.android.internal.policy.PhoneWindow$DecorView.onMeasure (PhoneWindow.java:3143) android.view.View.measure (View.java:20166) android.view.ViewRootImpl.performMeasure (ViewRootImpl.java:2644) android.view.ViewRootImpl.measureHierarchy (ViewRootImpl.java:1599) android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:1891) android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1487) android.view.ViewRootImpl$TraversalRunnable.run (ViewRootImpl.java:7450) android.view.Choreographer$CallbackRecord.run (Choreographer.java:920) android.view.Choreographer.doCallbacks (Choreographer.java:695) android.view.Choreographer.doFrame (Choreographer.java:631) android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:906) android.os.Handler.handleCallback (Handler.java:739) android.os.Handler.dispatchMessage (Handler.java:95) arrow_drop_down Caused by android.view.InflateException: Binary XML file line #2: Error inflating class android.support.design.widget.AppBarLayout android.view.LayoutInflater.createView (LayoutInflater.java:657) android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:776) android.view.LayoutInflater.parseInclude (LayoutInflater.java:966) android.view.LayoutInflater.rInflate (LayoutInflater.java:843) android.view.LayoutInflater.rInflateChildren (LayoutInflater.java:810) android.view.LayoutInflater.rInflate (LayoutInflater.java:855) android.view.LayoutInflater.rInflateChildren (LayoutInflater.java:810) android.view.LayoutInflater.rInflate (LayoutInflater.java:855) android.view.LayoutInflater.rInflateChildren (LayoutInflater.java:810) android.view.LayoutInflater.inflate (LayoutInflater.java:527) android.view.LayoutInflater.inflate (LayoutInflater.java:429) com.myapp.profile.ProfileFragment.onCreateView (ProfileFragment.java:163) android.support.v4.app.Fragment.performCreateView (Fragment.java:2080) android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1108) android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1290) android.support.v4.app.BackStackRecord.run (BackStackRecord.java:801) android.support.v4.app.FragmentManagerImpl.execSingleAction (FragmentManager.java:1638) android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss (BackStackRecord.java:679) android.support.v4.app.FragmentPagerAdapter.finishUpdate (FragmentPagerAdapter.java:143) android.support.v4.view.ViewPager.populate (ViewPager.java:1240) android.support.v4.view.ViewPager.populate (ViewPager.java:1088) android.support.v4.view.ViewPager.onMeasure (ViewPager.java:1614) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.support.design.widget.CoordinatorLayout.onMeasureChild (CoordinatorLayout.java:700) android.support.design.widget.CoordinatorLayout.onMeasure (CoordinatorLayout.java:767) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.widget.LinearLayout.measureChildBeforeLayout (LinearLayout.java:1464) android.widget.LinearLayout.measureVertical (LinearLayout.java:747) android.widget.LinearLayout.onMeasure (LinearLayout.java:629) android.view.View.measure (View.java:20166) com.sothree.slidinguppanel.SlidingUpPanelLayout.onMeasure (SlidingUpPanelLayout.java:804) android.view.View.measure (View.java:20166) android.support.v4.widget.DrawerLayout.onMeasure (DrawerLayout.java:1085) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.widget.FrameLayout.onMeasure (FrameLayout.java:194) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.widget.FrameLayout.onMeasure (FrameLayout.java:194) android.support.v7.widget.ContentFrameLayout.onMeasure (ContentFrameLayout.java:135) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.widget.FrameLayout.onMeasure (FrameLayout.java:194) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.widget.FrameLayout.onMeasure (FrameLayout.java:194) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.widget.LinearLayout.measureChildBeforeLayout (LinearLayout.java:1464) android.widget.LinearLayout.measureVertical (LinearLayout.java:747) android.widget.LinearLayout.onMeasure (LinearLayout.java:629) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.widget.FrameLayout.onMeasure (FrameLayout.java:194) com.android.internal.policy.PhoneWindow$DecorView.onMeasure (PhoneWindow.java:3143) android.view.View.measure (View.java:20166) android.view.ViewRootImpl.performMeasure (ViewRootImpl.java:2644) android.view.ViewRootImpl.measureHierarchy (ViewRootImpl.java:1599) arrow_drop_down Caused by java.lang.reflect.InvocationTargetException: java.lang.reflect.Constructor.newInstance (Constructor.java) android.view.LayoutInflater.createView (LayoutInflater.java:631) android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:776) android.view.LayoutInflater.parseInclude (LayoutInflater.java:966) android.view.LayoutInflater.rInflate (LayoutInflater.java:843) android.view.LayoutInflater.rInflateChildren (LayoutInflater.java:810) android.view.LayoutInflater.rInflate (LayoutInflater.java:855) android.view.LayoutInflater.rInflateChildren (LayoutInflater.java:810) android.view.LayoutInflater.rInflate (LayoutInflater.java:855) android.view.LayoutInflater.rInflateChildren (LayoutInflater.java:810) android.view.LayoutInflater.inflate (LayoutInflater.java:527) android.view.LayoutInflater.inflate (LayoutInflater.java:429) com.myapp.profile.ProfileFragment.onCreateView (ProfileFragment.java:163) android.support.v4.app.Fragment.performCreateView (Fragment.java:2080) android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1108) android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1290) android.support.v4.app.BackStackRecord.run (BackStackRecord.java:801) android.support.v4.app.FragmentManagerImpl.execSingleAction (FragmentManager.java:1638) android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss (BackStackRecord.java:679) android.support.v4.app.FragmentPagerAdapter.finishUpdate (FragmentPagerAdapter.java:143) android.support.v4.view.ViewPager.populate (ViewPager.java:1240) android.support.v4.view.ViewPager.populate (ViewPager.java:1088) android.support.v4.view.ViewPager.onMeasure (ViewPager.java:1614) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.support.design.widget.CoordinatorLayout.onMeasureChild (CoordinatorLayout.java:700) android.support.design.widget.CoordinatorLayout.onMeasure (CoordinatorLayout.java:767) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.widget.LinearLayout.measureChildBeforeLayout (LinearLayout.java:1464) android.widget.LinearLayout.measureVertical (LinearLayout.java:747) android.widget.LinearLayout.onMeasure (LinearLayout.java:629) android.view.View.measure (View.java:20166) com.sothree.slidinguppanel.SlidingUpPanelLayout.onMeasure (SlidingUpPanelLayout.java:804) android.view.View.measure (View.java:20166) android.support.v4.widget.DrawerLayout.onMeasure (DrawerLayout.java:1085) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.widget.FrameLayout.onMeasure (FrameLayout.java:194) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.widget.FrameLayout.onMeasure (FrameLayout.java:194) android.support.v7.widget.ContentFrameLayout.onMeasure (ContentFrameLayout.java:135) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.widget.FrameLayout.onMeasure (FrameLayout.java:194) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.widget.FrameLayout.onMeasure (FrameLayout.java:194) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.widget.LinearLayout.measureChildBeforeLayout (LinearLayout.java:1464) android.widget.LinearLayout.measureVertical (LinearLayout.java:747) android.widget.LinearLayout.onMeasure (LinearLayout.java:629) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.widget.FrameLayout.onMeasure (FrameLayout.java:194) com.android.internal.policy.PhoneWindow$DecorView.onMeasure (PhoneWindow.java:3143) android.view.View.measure (View.java:20166) android.view.ViewRootImpl.performMeasure (ViewRootImpl.java:2644) arrow_drop_down Caused by java.lang.NullPointerException: Attempt to get length of null array android.support.design.widget.AppBarLayout.onCreateDrawableState (AppBarLayout.java:494) android.view.View.getDrawableState (View.java:18365) android.view.View.setBackgroundDrawable (View.java:18614) android.view.View.setBackground (View.java:18551) android.view.View.<init> (View.java:4621) android.view.ViewGroup.<init> (ViewGroup.java:589) android.widget.LinearLayout.<init> (LinearLayout.java:202) android.widget.LinearLayout.<init> (LinearLayout.java:198) android.widget.LinearLayout.<init> (LinearLayout.java:194) android.support.design.widget.AppBarLayout.<init> (AppBarLayout.java:151) java.lang.reflect.Constructor.newInstance (Constructor.java) android.view.LayoutInflater.createView (LayoutInflater.java:631) android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:776) android.view.LayoutInflater.parseInclude (LayoutInflater.java:966) android.view.LayoutInflater.rInflate (LayoutInflater.java:843) android.view.LayoutInflater.rInflateChildren (LayoutInflater.java:810) android.view.LayoutInflater.rInflate (LayoutInflater.java:855) android.view.LayoutInflater.rInflateChildren (LayoutInflater.java:810) android.view.LayoutInflater.rInflate (LayoutInflater.java:855) android.view.LayoutInflater.rInflateChildren (LayoutInflater.java:810) android.view.LayoutInflater.inflate (LayoutInflater.java:527) android.view.LayoutInflater.inflate (LayoutInflater.java:429) com.myapp.profile.ProfileFragment.onCreateView (ProfileFragment.java:163) android.support.v4.app.Fragment.performCreateView (Fragment.java:2080) android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1108) android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1290) android.support.v4.app.BackStackRecord.run (BackStackRecord.java:801) android.support.v4.app.FragmentManagerImpl.execSingleAction (FragmentManager.java:1638) android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss (BackStackRecord.java:679) android.support.v4.app.FragmentPagerAdapter.finishUpdate (FragmentPagerAdapter.java:143) android.support.v4.view.ViewPager.populate (ViewPager.java:1240) android.support.v4.view.ViewPager.populate (ViewPager.java:1088) android.support.v4.view.ViewPager.onMeasure (ViewPager.java:1614) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.support.design.widget.CoordinatorLayout.onMeasureChild (CoordinatorLayout.java:700) android.support.design.widget.CoordinatorLayout.onMeasure (CoordinatorLayout.java:767) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.widget.LinearLayout.measureChildBeforeLayout (LinearLayout.java:1464) android.widget.LinearLayout.measureVertical (LinearLayout.java:747) android.widget.LinearLayout.onMeasure (LinearLayout.java:629) android.view.View.measure (View.java:20166) com.sothree.slidinguppanel.SlidingUpPanelLayout.onMeasure (SlidingUpPanelLayout.java:804) android.view.View.measure (View.java:20166) android.support.v4.widget.DrawerLayout.onMeasure (DrawerLayout.java:1085) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.widget.FrameLayout.onMeasure (FrameLayout.java:194) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.widget.FrameLayout.onMeasure (FrameLayout.java:194) android.support.v7.widget.ContentFrameLayout.onMeasure (ContentFrameLayout.java:135) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.widget.FrameLayout.onMeasure (FrameLayout.java:194) android.view.View.measure (View.java:20166) android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328) android.widget.FrameLayout.onMeasure (FrameLayout.java:194) android.view.View.measure (View.java:20166) 
+5
source share
1 answer

This exception occurs when AppBarLayout tries to initialize its scrollbar - it is possible that your activity style has a default scroll style and that AppBarLayout inherits it.

The easiest solution is to make sure that AppBarLayout is not using the scroll bar ever and only to do the following:

 <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:scrollbars="none"> <!--YOUR LAYOUT--> </android.support.design.widget.AppBarLayout> 

I am sure that I did not see an error report for this problem in the Android project, so I think I should inform about it.

EDIT

I created an example application to reproduce this problem - you can find it on the right here . When you run the issue-254934 on a device with API22, both the AppBarLayout and API23 configurations work, and above one of them raises exactly the same exception as you reported here.

EDIT

Issue-254923 has been fixed and a fix will be released in a future version

0
source

Source: https://habr.com/ru/post/1258196/


All Articles