Android Device Monitor(DDMS)打开白屏,Hierarchy Viewer不能查看UI视图层级问题解决方法

背景

原本想使用Hierarchy Viewer查看一个正式应用的视图层级,但是一打开Android Device Monitor,Android Device Monitor就白屏,无法使用,更不要说进入Hierarchy Viewer了。怎么办?还能怎么办呢,google大法好,一步步解决鸭。

遇到的问题和结果

  1. Android Device Monitor白屏,无法使用。
  2. .bash_profile文件无法编辑。
  3. Hierarchy Viewer无法连接手机。
  4. Hierarchy Viewer连接上真机无法查看正式应用层级,使用Android Device Monitor下的Dump View Hierarchy for UI Automator成功查看视图层级。

Android Device Monitor白屏,无法使用

一开始想直接打开Android Studio,再打开Tools/Android/Android Device Monitor(升级AS后没有该选项的,可以去sdk目录下的tools找到monitor)直接查看视图层级,结果打开DDMS白屏,留下一脸懵逼的我。上网搜索找到解决办法:

mac打开AndroidStudio下的ddms(也就是AndroidDeviceMontor)白屏,是由于jdk版本号较高不兼容导致的,因此需要将jdk降为jdk1.8.0_144就可以来了,但是要删除较高版本的jdk,因为它会默认使用较高版本的。

是jdk版本过高的原因,没有关系,改!将电脑里的原本的jdk1.8.0_172.jdk版本删除,重新安装完成jdk1.8.0_144版本后,还需要重新配置一下JDK的环境变量。

.bash_profile文件无法编辑

因为电脑是mac,所以是在.bash_profile文件中添加JDK环境变量。

打开terminal,输入:

  • cd ~
  • open .bash_profile

配置下面一句话

JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_144/Contents/Home

打开.bash_profile文件编辑,一编辑就弹出提醒框:“您不是文件“.bash_profile”的所有者,因此没有权限写到该文件。”又留下一脸懵逼的我。

思考:是我权限不够大?才改不了的?那我改成root用户是不是就ok了?一通操作改成root用户,信心满满的重新open .bash_profile准备开始编辑。

一卡顿:“您不是文件“.bash_profile”的所有者,因此没有权限写到该文件。”

我:。。。。。

再次google一波,搜索到新的解决办法:

通过 VI 编辑器修改

重新打开terminal,输入:

  • cd ~
  • open .bash_profile
  • sudo vi .bash_profile
  • source .bash_profile

输入java -version(查看当前设置JDK的是否生效),控制台显示

java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)

使用vi编辑器修改.bash_profile文件成功!

使用Hierarchy Viewer无法连接手机

在成功对上面的文件进行配置后,终于打开了DDMS里面的Hierarchy Viewer,满心欢喜的准备开始查看视图层级了。打开Hierarchy Viewer,连接好手机,想象中的视图树状层级图没有出现,只有Console中刺眼的红色报错,提醒我,没有连接上手机。。。连不上。。。连不上。。。。

[hierarchyviewer]Unable to  get view server version from device xxxxx
[hierarchyviewer]Unable to  get view server protocol version from device  xxxxx
[ViewServerDevice]Unable to  debug device: xxxxx
[hierarchyviewer]Unable to  get the focused window from device  xxxxx

我:啊。。。绝望。。。。
一分钟后。
我(开始自我激励):我可是程序猿,有什么不能解决的呢!

搜索Hierarchy Viewer连接不上真机问题,解决方法似乎比较复杂。最后看到Google官方的说明,需要在环境变量中添加一句:

export ANDROID_HVPROTO=ddm

怀着忐忑的心情打开Hierarchy Viewer,然后打开测试环境下的应用,我滴哥,可以看到树状图了,耶。

紧接着尝试打开正式应用,查看树状图,结果失败了。

猜测正式版的应用可能不能用Hierarchy Viewer来查看。

Dump View Hierarchy for UI Automator查看视图层级

正当绝望之际,上网搜索半天,突然查看到使用Android Device Monitor下的Dump View Hierarchy for UI Automator可以查看视图层级。

Android Device Monitor(DDMS)打开白屏,Hierarchy Viewer不能查看UI视图层级问题解决方法_第1张图片

点击Dump View Hierarchy for UI Automator,对当前应用的视图截图并分析了布局,能查看布局具体分布,搞定。

参考文章:

  • Profile your layout with Hierarchy Viewer(Hierarchy Viewer在Android Studio 3.1及之后的版本已经被弃用,官方建议使用Layout Inspector替代)
  • Mac下打开DDMS(AndroidDeviceMonitor)白屏
  • 在Mac下配置JDK
  • Mac上给android模拟器安装apk步骤
  • 在Android Studio下使用Hierarchy Viewer

如果有什么写的不对的地方,欢迎讨论。

如果对你有帮助的话,点赞、评论都是对我的鼓励,也是支持我写下去的动力,谢谢!

你可能感兴趣的:(android学习)