java.lang.IllegalStateException:无法为v创建图层

时间:2017-05-02 22:28:29

标签: android android-5.0-lollipop

我在崩解剂上有这个例外,并且不知道如何重现或原因可能是什么。有没有人有任何关于我应该从哪里开始寻找的指示?仅影响Android 5 +。

Fatal Exception: java.lang.IllegalStateException: Unable to create layer for v
       at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
       at android.os.MessageQueue.next(MessageQueue.java:323)
       at android.os.Looper.loop(Looper.java:135)
       at android.app.ActivityThread.main(ActivityThread.java:5585)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)

感谢。

编辑:我想更新它不仅影响Android 5,它似乎影响Android 5 +

5 个答案:

答案 0 :(得分:4)

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)

我在NestedScrollView内的RecyclerView有相同的问题

RecyclerView <-在NestedScrollView内部

解决方案: 当滚动视图或nestedscrollview内部的RecyclerView尝试一次加载所有项目时。当RecyclerView一次加载所有项目时,还将加载当前在屏幕上不可见的项目。如果将日志放在RecylerView的onBindViewHolder内,则会发现所有项目均在开始时加载,而不是根据项目的可见性加载。

这会使UI一次加载超过1-1.5屏幕的内容。这将导致父级LinearLayout(在ScrollView内部)引发异常。建议分页内容,一次加载不超过1-1.5屏幕的内容。 I had also issue related to same with Recyclerview without animation

答案 1 :(得分:3)

此问题似乎与Scene transition with hero elements throws Layer exceeds max. dimensions supported by the GPU有关。

您应该查看您正在进行的任何活动交易,特别是asset_path

的效果

答案 2 :(得分:2)

android:hardwareAccelerated="false"的{​​{1}}标签中添加application可以解决我的问题

答案 3 :(得分:1)

当我尝试创建一个简单的View时,我也遇到了这个问题。我只需要在其XML中设置android:forceHasOverlappingRendering="false"。请注意,它仅适用于API级别24。

答案 4 :(得分:0)

就我而言,这是一个愚蠢的错误,Android Studio 没有显示任何警告。

我有一个 ID 为 @+id/myView 的视图集,但我也在同一个视图/标签 android:layout_below=@id/myView 中进行了设置。

像这样:

<TextView
    android:id="@+id/textview"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_below="@id/textview" /> <!-- The traitor :( -->