美文网首页
Android Device Monitor(DDMS)打开白屏

Android Device Monitor(DDMS)打开白屏

作者: 程序员张晴天 | 来源:发表于2019-01-13 00:21 被阅读138次

    背景

    原本想使用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可以查看视图层级。

    DDMS.png

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

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

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

    参考文章:

    相关文章

      网友评论

          本文标题:Android Device Monitor(DDMS)打开白屏

          本文链接:https://www.haomeiwen.com/subject/scucdqtx.html