uiautomatorviewer 出现安卓8.0级以上无法打开的解决方法

一、.本人在使用Android自带的uiautomatorviewer工具来进行app元素定位时,出现了Android 9.0打开不了。出现了如下图错误提示:

 

经过网上的查阅,总结了几个解决的方法。

(1)现在D盘下根目录下新建screen.png和screen.uix两个文件。(这个方法一定要关闭appium,因为uiautomatorviewer 和appium 是会起冲突的)然后打开cmd 输入:

.(截取uix资源文件)

adb shell uiautomator dump /sdcard/screen.uix

adb pull /sdcard/screen.uix D:/pic/screen.uix

(截取截图)

adb shell screencap -p /sdcard/screen.png

adb pull /sdcard/screen.png D:/pic/screen.png

然后打开uiautomatorviewer,导入这两个文件

 

 

导入成功之后,就会出现一张手机截图。可以通过截图去定位元素。但是这里如果想要切换屏幕在定位的话,就又需要在继续的导入文件有些麻烦。(这个不是很完美的解决方法,但可以将就使用)

 

 

(2)其他博客说可以通过SDK Manager.exe,来安装对应手机版本号的安卓包来解决此问题。但经过我的实践并没有解决,感兴趣的同学可以去测试下。

 

 

 (3)如果前两种都不能解决这个问题,那只能退而求其次使用低版本的手机进行元素定位了。低版本还是没有问题的,可以直接定位元素且不需要每次切图在导文件。

 

(4)但如果你没有低版本手机,只能使用Android8.0及以上手机定位的话。那我推荐你去使用Appium inspector,可以解决Android 高版本元素定位的问题。

 首先打开appium后,开启服务。点击右上角的搜索符号,进入到下图填入配置信息进行保存。

 然后就是点击启动回话了

 

 启动会话后。可以去定位元素了,切换手机内容后只需要点击刷新按钮即可同步刷新。

 appium定位配置内容:

"platformName": "Android",        #表示平台类型
"platformVersion": "10",              # 设备实际的安卓版本号          Android/platform-tools 路径下 adb shell getprop ro.build.version.release 查看当前连接设备版本号
"deviceName": "127.0.0.1:62001",  # 表示的是设备的ID,如果当前电脑只连接了一台手机或模拟器,可以使用4个*号代替
"noReset": true,                               # 启动app时不要清除app里的原有的数据
"appActivity": "com.cf.balalaper.MainActivity",         # APP的活动名          Android/platform-tools 路径下 adb shell dumpsys window | findstr mCurrentFocus   查看appActivity  和appPackage 信息
"appPackage": "com.cmcm.cfwallpaper"     # APP的包名                          Android/platform-tools 路径下 adb shell dumpsys window | findstr mCurrentFocus   查看appActivity  和appPackage 信息

 

 

 

 

 

posted @ 2019-11-20 00:54  Jc_code  阅读(2627)  评论(4编辑  收藏  举报