В Android4.4 hwui получите ошибку opengl 0x0506

В Android4.4 HWUI я получаю журнал ошибок opengl:

Ошибка GL от OpenGLRenderer: 0x0506

Ошибка - GL_INVALID_FRAMEBUFFER_OPERATION, я думаю, что, возможно, есть какая-то ошибка в fbo, но код android hwui, мы его не модифицировали.

Ошибка приведет к ошибке рисования иконки Launcher или сделает иконку черной, но ошибка не просто появляется, также я не представляю, как она появляется, она появляется непреднамеренно.

1 ответ

Решение
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java  
index d212786..239c235 100644  
--- a/core/java/android/view/View.java  
+++ b/core/java/android/view/View.java  
@@ -13152,6 +13152,23 @@ public class View implements Drawable.Callback, KeyEvent.Callback,  

                 invalidate(true);  
                 invalidateParentCaches();  
+            } else if (info != null && info.mHardwareRenderer != null) {  
+                // If fall into this path, means the hardware render has  
+                // already been disabled. Destroy it in a safely context  
+                // to avoid random UI corruption  
+                info.mHardwareRenderer.safelyRun(new Runnable() {  
+                    @Override  
+                    public void run() {  
+                        mHardwareLayer.destroy();  
+                        mHardwareLayer = null;  
+  
+                        if (mDisplayList != null) {  
+                            mDisplayList.reset();  
+                        }  
+                        invalidate(true);  
+                        invalidateParentCaches();  
+                    }  
+                });  
             }  
             return true;  
         }  

из Android bug —— Launcher 0x506. Надеюсь, он поможет вам.:)

Другие вопросы по тегам