2016-10-14 26 views
5

Zdarza nam się zbyt wiele z tych awarii, głównie na urządzeniach Samsung 6.0.1. Otrzymaliśmy nawet to samo urządzenie z tą samą wersją os i nadal nie możemy go odtworzyć na własną rękę. Dostajemy inne zawyżone wyjątki prawdopodobnie są ze sobą powiązane.AppBarLayout.onCreateDrawableState NullPointerException: Próba uzyskania długości tablicy pustej

Czy istnieje obejście tego problemu?

wsparcie lib wersja - 24.2.1

Oto pełna ślad stosu:

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) 
+1

Samsung powinien sprzedawać tylko odkurzacze. Nieważne. Czy ustawianie niektórych elementów do układu paska zadań jest ustawiane? Może statelistdrawable dla elewacji? Jest to sytuacja bardzo pomieszana, ponieważ tablica intów jest prymitywna, ale rzuca, jakby się nie zainicjowała. Może to zostać wygenerowane z powodu pozwolenia, jeśli aplikacja zostanie przeniesiona do magazynu sd, a losowanie będzie odczytywane jako zwykły plik. –

+0

To samo przydarzyło mi się, ale biblioteka 25.3.1 – Javier

+0

@mstrengis tylko po to, aby Ci powiadomić: Zespół Androida naprawił ten problem, a poprawka wkrótce ukaże się - https://issuetracker.google.com/issues/37139450 –

Odpowiedz

0

To jest wyjątek kiedy AppBarLayout próbuje zainicjować jego przewijania - to całkiem możliwe, że Twój styl aktywny ma domyślną w stylu paska przewijania i odziedziczy go AppBarLayout.

Najprostszym rozwiązaniem jest, aby upewnić się AppBarLayout nie używa przewijania kiedykolwiek i po prostu to zrobić w następujący sposób:

<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> 

jestem całkiem pewny, że nie widzi odpowiedniego raportu o błędzie do tej kwestii w Androidzie projekt, więc myślę, że nadszedł czas, aby zgłosić jeden.

EDIT

Utworzyłem przykładową aplikację, aby odtworzyć ten problem - można go tuż here znaleźć. Po uruchomieniu aplikacji issue-254934 na urządzeniu z interfejsem API22 - obie konfiguracje AppBarLayout działają, a w przypadku interfejsu API23 i nowszych jeden z nich powoduje dokładnie ten sam wyjątek, co w tym miejscu.

EDIT

Issue-254923 zostały ustalone i bugfix ukaże się w przyszłym wydaniu

+0

Dziękuję za odpowiedź. Czy możesz podać instrukcje, jak odtworzyć awarię? Nie możemy odtworzyć tego błędu przez nas samych – mstrengis

+0

@mstrengis tylko po to, żeby Ci dać znać, dodałem przykładowy projekt do mojej odpowiedzi –

+0

to nie działa dla mnie. Nadal mam NPE. –

Powiązane problemy