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

4

我刚刚遇到了这个异常:图层超出了GPU支持的最大尺寸限制

我在其他地方看到过类似的情况,比如场景转换动画带有英雄元素时会抛出“图层超出了GPU支持的最大尺寸限制”

但是在我的情况下,我的大小是负数。我正在对一个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)
2个回答

1
由于视图的底部位于顶部之上,导致程序崩溃,我已经修复了此问题,即使视图超出屏幕,现在也不会再崩溃了。

0

我遇到了与以下代码相同的问题

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

所以通过去除设置转场和设置记录允许,我解决了这个问题, 我认为问题是从一个复杂的 UI 片段移动到另一个复杂的 UI 片段时,同时保存两个片段的实例(我在活动中保存片段),并且在替换时使用动画导致了这个问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接