Can't connect to activity manager; is the system running 问题探究及解决

一、文档概述

本文旨在记录错误信息Error type 2: android.util.AndroidException: Can't connect to activity manager; is the system running?问题分析及解决方式。

二、问题描述

在今天测试过程中发现任务卡在某一阶段无法通过,其中提示信息如下:

错误信息

提示信息显示Android系统没有运行。

出现这个问题很奇怪的,正常来说是不会出现这种情况的。

既然出现了就开始分析。经过搜索,发现并没有什么有效信息。其中的解释都是重启手机,当然,重启手机可以解决问题,但是我们还是不知道为什么会产生这个问题。

暂时没有什么头绪。。。

突然,灵光一现。。。。。。

由于提示信息表示Android系统未运行,Android系统实际运行的是一个zygote进程,通过这个进程再fork子进程来运行app的。从侧面可以说明,zygote就是Android system。

因此可能就是zygote进程挂了导致提示如上信息。

复现这个问题就简单多了,只需要kill掉zygote进程即可。

之前调研adb使用发现使用adb shell stop即可实现。

三、问题复现

目标:

使用命令打开app:

  • adb shell am start -n com.android.settings/com.android.settings.Settings

1、正常情况:

正常情况

随后手机会显示设置界面。

2、异常情况:

首先运行以下命令,关闭zygote进程:

  • adb shell stop //(现象:单击电源键屏幕不亮)

随后打开目标app,提示信息如下:

异常情况

可以发现,显示的信息和工程代码错误信息一致。

四、小结

经过以上分析,出现以上错误的原因的确是zygote进程异常退出导致的。

为什么呢?因为zygote进程控制着系统服务,包括AMS等关键服务。如果zygote进程异常退出,所以进程包括服务都会被关闭,导致提示系统没有运行。

解决的方式比较简单:

  • 1、运行:

    • adb shell start
  • 2、重启手机

五、注意事项

注1:部分手机需要root权限运行

注2:关闭zygote进程之后,手机还是可以使用adb进行控制的

你可能感兴趣的:(学习资源,Android,Error,type,2)