原本想使用Hierarchy Viewer查看一个正式应用的视图层级,但是一打开Android Device Monitor,Android Device Monitor就白屏,无法使用,更不要说进入Hierarchy Viewer了。怎么办?还能怎么办呢,google大法好,一步步解决鸭。
一开始想直接打开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的环境变量。
因为电脑是mac,所以是在.bash_profile文件中添加JDK环境变量。
打开terminal,输入:
配置下面一句话
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_144/Contents/Home
打开.bash_profile文件编辑,一编辑就弹出提醒框:“您不是文件“.bash_profile”的所有者,因此没有权限写到该文件。”又留下一脸懵逼的我。
思考:是我权限不够大?才改不了的?那我改成root用户是不是就ok了?一通操作改成root用户,信心满满的重新open .bash_profile准备开始编辑。
一卡顿:“您不是文件“.bash_profile”的所有者,因此没有权限写到该文件。”
我:。。。。。
再次google一波,搜索到新的解决办法:
重新打开terminal,输入:
输入java -version(查看当前设置JDK的是否生效),控制台显示
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
使用vi编辑器修改.bash_profile文件成功!
在成功对上面的文件进行配置后,终于打开了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来查看。
正当绝望之际,上网搜索半天,突然查看到使用Android Device Monitor下的Dump View Hierarchy for UI Automator可以查看视图层级。
点击Dump View Hierarchy for UI Automator,对当前应用的视图截图并分析了布局,能查看布局具体分布,搞定。
如果有什么写的不对的地方,欢迎讨论。
如果对你有帮助的话,点赞、评论都是对我的鼓励,也是支持我写下去的动力,谢谢!