(二)uiautomatorviewer无法启动
1.关于 uiautomatorviewer:不是 “只支持 Android 9 以下”,而是:
- Android 9(API 28)及以下:基本正常
- Android 10+:Google 加强了 SELinux / 权限限制,uiautomatorviewer 经常报错:
Remote object doesn't exist!SecurityException- 抓出来的 xml 是空的
简单记:uiautomatorviewer 在 Android 9 还能用;Android 10+ 基本残废,官方也不再维护它
由于uiautomatorviewer仅支持低版本的JDK8,高版本的JDK则无法启动,作者这里是先前安装的是JDK17,所以无法启动,接下来在安装一个JDK8和JDK17安装在同一个目录下的如下配置:

2.夜神模拟器 adb 修复步骤
作者这里用的是夜神模拟器
1.先关闭所有 adb 的进程:adb kill-server
2.将 SDK 的 platform-tools 目录下的 adb.exe 文件复制到电脑任意路径下,并改名为nox_adb.exe 。然后再把改名后的文件拷贝到夜神模拟器安装路径的 bin 目录下替换原来的 nox_adb.exe 件;
3.重启模拟器。
4.接着启动adb进程:adb start-server 再进入命令行窗口输入命令 adb devices 查看设备信息,这样就能正常显示出来了。
5.uiautomatorviewer工具只支持Android9以下的版本 以上的版本都不在支持了
这是夜神官方和社区公认最稳的解法,原因就是:
- 夜神自己带的 nox_adb.exe 版本太旧
- 和你电脑 SDK 里的 adb 版本不一致 → 经常断、识别不到设备
-
# 1. 杀掉旧adb,避免冲突 adb kill-server # 2. 重启adb adb start-server # 3. 连接夜神(默认端口 62001) adb connect 127.0.0.1:62001 # 4. 查看是否成功 adb devices
如下图所示:安装了JDK8和JDK17两个版本,不用慌,因为安装了JDK8系统会自动配置java环境变量路径:如有没有自动配置路径,就手动配置一下,如果收你先安装JDK17后安装JDK8那个系统会自动默认JDK8为第一行,所以你java -verison的时候看到的是 java8 不是Java17,可以通过移动来改变顺序:通过 上移 移动顺序后看到的就是java17了,系统就会优先去调用Java17

6.修改uiautomatorviewer.bat文件,首先在JDK8的bin目录下找到java.exe 文件复制详细地址

7.然后在SDK安装目录下找到tools目录下的uiautomatorviewer.bat,用编辑工具打开找到“set java_exe=”的位置将复制的路径粘贴到等号后面,在注释掉下一行:“call lib\find_java.bat”在它前面加一个rem 注释,保存。

8. 启动模拟器,连接模拟器,然后点击uiautomatorviewer.bat,启动成功,连接成功

3.建议
- 官方 uiautomatorviewer 在 Android 9+ 兼容性很差,换工具(推荐)
- 不要再死磕 uiautomatorviewer,换稳定的工具:
- weditor(uiautomator2)浏览器打开,直接点 Dump,几乎不报错。
- Appium Inspector 图形化界面,不用写代码,兼容性也很好。
4.常见问题排查步骤,按顺序操作就能搞定
一、先检查手机 / 设备本身(90% 问题出在这里)
1. 必须开启「开发者选项」
-
手机 → 设置 → 关于手机 → 连续点击 版本号 7 次,开启开发者模式
2. 必须打开「USB 调试」
-
设置 → 开发者选项 → 打开 USB 调试
-
重要:如果有下面这些选项,全部打开:
-
USB 安装
-
USB 调试(安全模式)
-
允许 USB 调试修改权限
-
3. 手机弹出授权时,一定要点「允许」
插上电脑后,手机会弹出: 允许 USB 调试? 必须勾选:✅ 一律允许此计算机
二、换 USB 线 / 换 USB 口
很多人卡在这里:
-
只能用数据传输线,不能用只充电的线
-
电脑尽量用 后置 USB 口
-
拔掉重新插一次
三、ADB 连接 出现port 5555: 不知道这样的主机。 (11001)
cannot resolve host 'xxxxxx' and port 5555: 不知道这样的主机。 (11001)
1. 如果有多个设备,比如有模拟器就需要手动连接:adb connect 127.0.0.1:62001
2.如果连接的设备是真机:手机授权后就已经自动连接了,直接操作就行,不在需要adb connect了
3.如果adb devices 看不到任何设备(模拟器需手动重启),重启adb服务:
先关闭后台进程:(1) adb kill-server
重启adb服务进程:(2) adb start-server
查看可用设备:(3)adb devices 查看可连接设备
更多推荐




所有评论(0)