SystemUI崩溃的解决过程
问题是这样的:Linux驱动中设置不同分辨率,系统正常启动后,SystemUI崩溃了,
问题是这样的:Linux驱动中设置不同分辨率(其中一个分辨率为1280*720),系统正常启动后,SystemUI崩溃了,错误的打印如下:
E/AndroidRuntime( 1404): FATAL EXCEPTION: main
E/AndroidRuntime( 1404): java.lang.RuntimeException: createWindowSurface failed EGL_BAD_ALLOC
E/AndroidRuntime( 1404): at com.android.systemui.ImageWallpaper$DrawableEngine.initGL(ImageWallpaper.java:687)
E/AndroidRuntime( 1404): at com.android.systemui.ImageWallpaper$DrawableEngine.drawWallpaperWithOpenGL(ImageWallpaper.java:466)
E/AndroidRuntime( 1404): at com.android.systemui.ImageWallpaper$DrawableEngine.drawFrameLocked(ImageWallpaper.java:395)
E/AndroidRuntime( 1404): at com.android.systemui.ImageWallpaper$DrawableEngine.onSurfaceChanged(ImageWallpaper.java:298)
E/AndroidRuntime( 1404): at android.service.wallpaper.WallpaperService$Engine.updateSurface(WallpaperService.java:698)
E/AndroidRuntime( 1404): at android.service.wallpaper.WallpaperService$Engine.attach(WallpaperService.java:786)
E/AndroidRuntime( 1404): at android.service.wallpaper.WallpaperService$IWallpaperEngineWrapper.executeMessage
困难:应用程序崩溃是由底层变化引起的(其他层出错也可能),这就比较郁闷了,又得从架构的角度出发分析问题。一层层追踪Bug真的感觉像当侦探有木有!!
1.我不了解现实架构中的OpenGL相关是实现,以及数据传递流程。
2.得不到上游厂商瑞芯微的支持,这应该是架构上的问题吧(也要先考虑是不是同事们修改造成的)
技术路线: 1.直接问题解决法,针对问题找到直接原因,或者找到直接解决方法,用某些机制屏蔽掉bug。
由于问题出现太久,原因和解决方案都没找到,这条路感觉是死路,还打消工作积极性。
2.重新研究显示架构中的OpenGL流程,从流程中追踪Bug的源头。需要查阅资料、熟悉OpenGL编程,权当是学习吧。
问题和学习相伴而行,才能成长快。 麻烦的是需要消耗时间,毕竟还是菜鸟!
具体方法:先考虑是否修改过框架,造成了Bug。否则
1.架构重新研究
2.OpenGL相关的应用接口研究
3.OpenGL的上下流程
4.直接分析Bug
====================================================================================
问题正在研究中,祝我好运!!
====================================================================================
更多推荐
所有评论(0)