首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android4.4,服务“SurfaceFlinger”死了

Android4.4,服务“SurfaceFlinger”死了
EN

Stack Overflow用户
提问于 2014-05-04 16:05:05
回答 2查看 3.7K关注 0票数 2

我正在运行一个使用ScreenshotClient在循环中捕获屏幕的本机进程。在几次运行之后,随机地,当我关闭进程时,我会得到“服务'SurfaceFlinger‘死掉”,并且屏幕会重新启动。这种情况在Android4.2中没有发生。

这是回溯:

代码语言:javascript
复制
I/DEBUG   (  111): backtrace:
I/DEBUG   (  111):     #00  pc 0002a61e  /system/lib/libgui.so
I/DEBUG   (  111):     #01  pc 0002f205  /system/lib/libgui.so (android::Surface::queueBuffer(ANativeWindowBuffer*, int)+220)
I/DEBUG   (  111):     #02  pc 0002e2cd  /system/lib/libgui.so (android::Surface::hook_queueBuffer(ANativeWindow*, ANativeWindowBuffer*, int)+10)
I/DEBUG   (  111):     #03  pc 00017fb9  /system/lib/libsurfaceflinger.so
I/DEBUG   (  111):     #04  pc 0001b6f1  /system/lib/libsurfaceflinger.so
I/DEBUG   (  111):     #05  pc 00015e6f  /system/lib/libsurfaceflinger.so
I/DEBUG   (  111):     #06  pc 00010767  /system/lib/libutils.so (android::Looper::pollInner(int)+394)
I/DEBUG   (  111):     #07  pc 00010869  /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+92)
I/DEBUG   (  111):     #08  pc 00016089  /system/lib/libsurfaceflinger.so
I/DEBUG   (  111):     #09  pc 00016f7b  /system/lib/libsurfaceflinger.so (android::SurfaceFlinger::run()+6)
I/DEBUG   (  111):     #10  pc 000008fd  /system/bin/surfaceflinger
I/DEBUG   (  111):     #11  pc 0000e403  /system/lib/libc.so (__libc_init+50)
I/DEBUG   (  111):     #12  pc 000007dc  /system/bin/surfaceflinger
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-11 08:48:28

当我干净利落地关闭这个过程而不是杀死它时,SurfaceFlinger就不会再死了。

票数 0
EN

Stack Overflow用户

发布于 2014-05-04 19:22:28

在过去的几天里,我亲眼看到了3次SurfaceFlinger崩溃。在实现中似乎有一个bug。由于我使用的是S5,所以我不能说这是三星特有的问题,或者是安卓的4.4.2问题。你用的是哪种设备?

若要从此问题中恢复,只需重新启动设备。有时,我成功地执行了一个“杀死-9”(我使用"ps \ grep“获得pid ),并在不重新启动设备的情况下使一切恢复正常。我曾经杀了剩下的/挂在水面上的人或中介服务。就像它在被杀死后自动重启一样,之后一切都很好。

由于这些是与设备一起交付的二进制文件,因此可能不可能修复此问题。但是,有一个很小的可能性:如果二进制文件与AOSP ( http://source.android.com/)中的二进制文件相同,那么您可以尝试编译这些二进制文件并替换手机上的二进制文件(请先备份原始的二进制代码)。

如果二进制文件是特定于设备的,您可能会在设备供应商的开源页面上找到它们。比如三星设备的http://opensource.samsung.com/。这些源通常很容易编译,并且可以在您的手机上替换二进制文件。

除此之外,我认为没有比报道这个问题更多的了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23458422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档