2016-10-14 22 views
5

Chúng tôi đang gặp phải quá nhiều sự cố này chủ yếu trên các thiết bị Samsung 6.0.1. Chúng tôi thậm chí có cùng một thiết bị với cùng một phiên bản hệ điều hành và vẫn không thể tự tái tạo nó. Chúng tôi đang nhận được ngoại lệ thổi phồng khác có lẽ họ có liên quan.AppBarLayout.onCreateDrawableState NullPointerException: Cố gắng lấy độ dài của mảng trống

Có giải pháp cho vấn đề này không?

hỗ trợ lib phiên bản - 24.2.1

Đây là ngăn xếp đầy đủ dấu vết:

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 chỉ nên bán máy hút bụi. Đừng bận tâm điều này. Bạn có thiết lập một số drawable để bố trí appbar? Có thể statelistdrawable cho độ cao? Nó thực sự sai lầm tình hình bởi vì các mảng ints là nguyên thủy nhưng nó ném như nó không được khởi tạo. Điều này có thể được ném do sự cho phép nếu ứng dụng được chuyển đến lưu trữ sd và drawable được đọc như là tập tin bình thường. –

+0

Điều tương tự cũng xảy ra với tôi, nhưng thư viện 25.3.1 – Javier

+0

@mstrengis chỉ cho bạn biết: Nhóm Android đã khắc phục vấn đề này và bản sửa lỗi sẽ sớm được phát hành - https://issuetracker.google.com/issues/37139450 –

Trả lời

0

ngoại lệ này được ném khi AppBarLayout cố gắng để khởi thanh cuộn của nó - nó khá có thể là phong cách hoạt động của bạn có mặc định thiết lập kiểu thanh cuộn và AppBarLayout kế thừa nó.

Giải pháp đơn giản nhất là để đảm bảo AppBarLayout không sử dụng thanh cuộn bao giờ hết và chỉ để làm như sau:

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

Tôi chắc chắn rằng tôi không thấy báo cáo lỗi thích hợp cho vấn đề này trong Android dự án, vì vậy tôi đoán đã đến lúc tôi báo cáo.

EDIT

tôi đã tạo ra ví dụ ứng dụng mô phỏng sự cố này - bạn có thể tìm thấy nó ngay here. Khi bạn khởi chạy ứng dụng issue-254934 trên thiết bị có API22 - cả cấu hình AppBarLayout hoạt động và cho API23 trở lên, một trong số các nguyên tắc này chính xác là ngoại lệ giống như bạn đã báo cáo ngay tại đây.

EDIT

Issue-254923 đã được sửa chữa và Sửa lỗi sẽ được phát hành trong một thông cáo trong tương lai

+0

Cảm ơn bạn đã trả lời. Bạn có thể cung cấp các bước về cách tái tạo sự cố đó không? Chúng tôi không thể tái tạo sự cố đó bởi bản thân của chúng tôi – mstrengis

+0

@mstrengis chỉ để cho bạn biết, tôi đã thêm dự án ví dụ vào câu trả lời của tôi –

+0

nó không hoạt động đối với tôi. Tôi vẫn có một NPE. –

Các vấn đề liên quan