В 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. Надеюсь, он поможет вам.:)