zoukankan      html  css  js  c++  java
  • UIAutomatorViewer 出现错误:Unable to connect to adb

    最近升级了AndroidSDK,打开UIAutomatorViewer.bat,结果发现获取不了Android设备界面上的UI信息。经过一番努力,终于把这个问题解决了,详细过程如下:

    1. Unable to connect to adb.Check if adb is installed correctly.问题:

    UIAutomatorViewer.bat位于AndroidSDK oolsin路径下,是个十分常用的自动化测试工具,双击运行即可。谁知更新了最新的AndroidSDK之后,运行UIAutomatorViewer.bat就出现了以下错误:

    Unable to connect to adb.Check if adb is installed correctly.

    2. 解决方案

    打开uiautomatorviewer.bat,将最后一句%prog_dir%替换成AndroidSDK ools路径,保存后再次打开uiautomatorviewer.bat即可得到当前View所有信息。

    uiautomatorviewer.bat源码片段

    替换上一句为下面这句:

    uiautomatorviewer.bat源码片段修改后

    3. 为什么这么修改就能解决问题了呢?

    1) 打开uiautomatorviewer.bat,发现最后一句是关键代码,也许问题就出现在这里。

    2) 打印出这最后一句里4个变量,可以得到如图所示路径,除了prog_dir,其他3个很显然都没有问题。

    3) 反编译uiautomatorviewer-25.3.2.jar,搜索com.android.uiautomator.bindir,在以下文件中找到相应的代码,

    由此可见jar文件里:

    A. prog_dir就是这里的toolsDir;

    B. Sdk路径是prog_di的父路径;

    C. adb路径是prog_di的父路径下platform-tools文件夹。

    uiautomatorviewer源代码片段

    再看uiautomatorviewer.bat,prog_dir= D:androidAndroidSDK oolsin,因此

    A. toolsDir路径就是D:androidAndroidSDK oolsin;

    B. Sdk路径是D:androidAndroidSDK ools;

    C. adb路径是D:androidAndroidSDK oolsplatform-tools,显然这个路径并不存在,于是就出现了unable to connect adb。

    所以将com.android.uiautomator.bindir设置成AndroidSDK ools路径,问题就解决了。

  • 相关阅读:
    主成分分析(PCA)原理详解_转载
    用eclipse怎么打war包?
    dsLinq.Count() 引发了“System.NullReferenceException”类型的异常
    sql中实现split()功能
    关于SQL Server将一列的多行内容拼接成一行,合并显示在另外表中
    SEM和SEO的区别?
    最适合程序员转行的10大职业
    CPM、CPC、CPA、PFP、CPS、CPL、CPR等广告术语是什么意思
    什么是CPC,CPA,CVR,CTR,ROI
    SQL SERVER 修改数据库名称(包括 db.mdf 名称的修改)
  • 原文地址:https://www.cnblogs.com/mabingxue/p/9594009.html
Copyright © 2011-2022 走看看