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 中)并且替换时使用动画会导致此问题
我刚收到这个 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 中)并且替换时使用动画会导致此问题