應用裏用到了opengl。
爲了適配某個聯想的機子,修改了setEGLConfigChooser。但是其他的機型卻因此導致應用崩潰。報錯EGL_BAD_MATCH。
google一把發現這裏說明了原因。大概意思是,holder.setFormat()的參數需要與setEGLConfigChooser的參數相匹配,否則就會失敗。
雖然android提供了PixelFormat.TRANSLUCENT這個值來爲setFormat()自動匹配合適參數,但是,看來在聯想的那個特殊機型下,這個值匹配失敗了。
所以,必須手動設置與setEGLConfigChooser想匹配的值。測試可行的匹配:
1、
setEGLConfigChooser(5, 6, 5, 0, 16, 0);
holder.setFormat(PixelFormat.RGB_565);
2、
setEGLConfigChooser(8, 8, 8, 8, 16, 0);
holder.setFormat(PixelFormat.RGB_8888);