java.lang.IllegalStateException: Unable to create layer for v

前端 未结 4 2021
挽巷
挽巷 2021-01-01 11:40

I have this exception on crashlytics and have no idea how to reproduce or what the cause might be. Does anyone have any pointers as to where I should start looking? Only aff

4条回答
  •  暗喜
    暗喜 (楼主)
    2021-01-01 12:08

    Fatal Exception: java.lang.IllegalStateException: Unable to create layer for LinearLayout, size 1080x4160 exceeds max size 4096
           at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
           at android.os.MessageQueue.next(MessageQueue.java:323)
           at android.os.Looper.loop(Looper.java:136)
           at android.app.ActivityThread.main(ActivityThread.java:6186)
           at java.lang.reflect.Method.invoke(Method.java)
           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
    

    I have same issue for RecyclerView inside NestedScrollView

    RecyclerView <- inside NestedScrollView

    Solution: As RecyclerView inside scrollview or nestedscrollview try to load all items at once. As RecyclerView loads all items at once, also loads items that are not visible right now on screen. If you put log inside onBindViewHolder of RecylerView you find that all items loads at the start instead of based on the visibility of the item.

    This causes UI to load more than 1-1.5 screens of content at a time. This causes the parent LinearLayout (inside the ScrollView) to throw exception. It's suggested to paginate your content and load no more than 1-1.5 screens of content at a time. I had also issue related to same with Recyclerview without animation.

提交回复
热议问题