当前位置:   article > 正文

libcore.io.ErrnoException: kill failed: ESRCH (No such process)_android failed to kill process 23458: no such proc

android failed to kill process 23458: no such process
这个问题遇到不止一次,记下解决方法备忘。 
运行稳定性脚本时框架崩溃,打印的堆栈信息如下: 
libcore.io.ErrnoException: kill failed: ESRCH (No such process)
at libcore.io.Posix.kill(Native Method)
at libcore.io.ForwardingOs.kill(ForwardingOs.java:77)
at java.lang.ProcessManager$ProcessImpl.destroy(ProcessManager.java:257)
at sogou.test.agent.framework.sysinfo.CMDExecute.run(CMDExecute.java:29)

查看了异常发生的位置CMDExecute.java:29,是: 
            if(process!=null){
             process.destroy();
            } 

发生崩溃的原因log里说的很清楚,就是被destroy的进程已经不存在了。 

解决方案: 
将  
            if(process!=null){
             process.destroy();
            } 
换成  
    try { 
            if (process != null) { 
                // use exitValue() to determine if process is still running.  
                process.exitValue(); 
            } 
        } catch (IllegalThreadStateException e) { 
            // process is still running, kill it. 
            process.destroy(); 
        }  
  exitValue()函数 采用非阻塞的方式返回,如果没有立即拿到返回值,则抛出异常。

参考: https://groups.google.com/forum/#!topic/android-developers/VcjXWBosQ88 

http://leonmau.iteye.com/blog/1174000 
 
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/181163?site
推荐阅读
相关标签
  

闽ICP备14008679号