Android: 图层超过最大值。 GPU 支持的尺寸(1080x-646,最大=16384x16384)

Android: Layer exceeds max. dimensions supported by the GPU (1080x-646, max=16384x16384)

我刚收到这个 Layer exceeds max. dimensions supported by the GPU 异常。

我在其他地方看到过它,例如 Scene transition with hero elements throws Layer exceeds max. dimensions supported by the GPU

但就我而言,我的尺寸为负数。我正在做的是 translating/animating 屏幕外的 ViewPager。

知道该怎么做吗?

完整日志:

 W/OpenGLRenderer: Layer exceeds max. dimensions supported by the GPU (1080x-646, max=16384x16384)
 D/OpenGLRenderer: Current memory usage / total memory usage (bytes):
                     TextureCache          4266660 / 58720256
                     LayerCache           26787840 / 33554432 (numLayers = 8)
                       Layer size 1088x1024; isTextureLayer()=0; texid=43 fbo=0; refs=1
                       Layer size 1088x960; isTextureLayer()=0; texid=40 fbo=0; refs=1
                       Layer size 576x384; isTextureLayer()=0; texid=49 fbo=0; refs=1
                       Layer size 1088x1024; isTextureLayer()=0; texid=37 fbo=0; refs=1
                       Layer size 1088x128; isTextureLayer()=0; texid=36 fbo=0; refs=1
                       Layer size 1088x1024; isTextureLayer()=0; texid=46 fbo=0; refs=1
                       Layer size 1088x768; isTextureLayer()=0; texid=27 fbo=0; refs=1
                       Layer size 1088x1024; isTextureLayer()=0; texid=26 fbo=0; refs=1
                     Layers total   26787840 (numLayers = 8)
                     RenderBufferCache           0 /  8388608
                     GradientCache               0 /  1048576
                     PathCache                2925 / 16777216
                     TessellationCache        2232 /  1048576
                     TextDropShadowCache         0 /  6291456
                     PatchCache               6208 /   131072
                     FontRenderer 0 A8    
 E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
 E/MessageQueue-JNI: java.lang.IllegalStateException: Unable to create layer for ViewPager
                         at android.os.MessageQueue.nativePollOnce(Native Method)
                         at android.os.MessageQueue.next(MessageQueue.java:323)
                         at android.os.Looper.loop(Looper.java:135)
                         at android.app.ActivityThread.main(ActivityThread.java:5422)
                         at java.lang.reflect.Method.invoke(Native Method)
                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
 D/AndroidRuntime: Shutting down VM
 E/AndroidRuntime: FATAL EXCEPTION: main
                   Process: , PID: 18453
                   java.lang.IllegalStateException: Unable to create layer for ViewPager
                       at android.os.MessageQueue.nativePollOnce(Native Method)
                       at android.os.MessageQueue.next(MessageQueue.java:323)
                       at android.os.Looper.loop(Looper.java:135)
                       at android.app.ActivityThread.main(ActivityThread.java:5422)
                       at java.lang.reflect.Method.invoke(Native Method)
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

这是由于 View 的布局是底部高于顶部,我修复了它,现在它不再崩溃,即使 View 位于屏幕之外也是如此。

我在使用以下代码时遇到了同样的问题

val t = supportFragmentManager.beginTransaction()
    t.replace(R.id.main_fl, fragment)
    t.setReorderingAllowed(true) ----> remove this
    t.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE) ----> remove this

所以通过删除 set treasition 和 set recoding allowed,我解决了这个问题, 我认为问题是从一个复杂的 UI 片段移动到另一个复杂的 UI 片段并保存两个片段的实例(我将片段保存在 activity 中)并且替换时使用动画会导致此问题