monkeyrunner的使用过程中遇到的问题整理


 

用macbook配置的环境真的时一波三折,终于配好开始使用后又出现了各种问题,在此记录一下,也希望能帮助更多的同学们

新手一个,探索中,说的不对的勿喷~

 

 

一、adb devices命令始终不能发现模拟器,或者报错

List of devices attached
adb server version (32) doesn't match this client (36); killing...
* daemon started successfully *

 

 

解决办法:

我一开始使用了夜神模拟器,但是不知道为啥,每次启动夜神模拟器都会导致我的电脑崩溃重启,只好放弃了

然后改成了网易mumu模拟器,终于可以用了,如果有时候发现不了模拟器,重启电脑和模拟器应该就可以了。

 

 

二、使用device.installPackage("xxx.apk") 命令安装apk时报错

  java.lang.NoSuchMethodError: com.android.ddmlib.IDevice.installRemotePackage  (类似这个错误,具体错误我忘记截图下来)

  解决办法:

  我卸载了原来android studio里下载下来的platform-tools和tools,重新下载了一个别的版本的进行替换,下载地址如下:

  http://www.androiddevtools.cn/

  然后重新启动monkeyrunner,再输入之前的安装命令,就可以了~

 

 

三、使用uiautomatorviewer定位元素时,报错

  使用了真机进行定位,获取真机屏幕时报错:

  Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn't exist!

 

  解决办法:重启手机,再次获取就可以了

  我用uiautomatorviewer获取模拟器的屏幕是不可以的,所以我只能获取真机屏幕定位元素,写好脚本后在模拟器上跑,心累。。

 

 

四、运行脚本时报错:Could not connect to the view server

首先通过执行如下命令判断是否开启View Server:
adb shell service call window 3
若返回值是:Result: Parcel(00000000 00000001 '........') 说明View Server处于开启状态
若返回值是:Result: Parcel(00000000 00000000 '........') 说明View Server处于关闭
若是一台可以打开View Server的手机(Android开发版手机 、模拟器or 按照本帖步骤给系统打补丁的手机),我们可以使用以下命令打开View Server:
adb shell service call window 1 i32 4939
使用以下命令关闭View Server:
adb shell service call window 2 i32 4939

我是用红米2a测试的,亲测可用,然后再跑脚本就没有报这个错误了,但是后续的脚本跑不起来,又回归了模拟器跑



五、运行脚本时一直卡着,无响应

   虽然monkeyrunner是可以同时操作多个设备的,但是不熟悉的时候还是只开一个吧,我把多余的窗口关掉,再尝试就可以了,建议只保留当前在进行测试的一个窗口

 

六、报错  Non-ASCII character in file 

只要在文件开头加入下面代码就行了

1 # -*- coding: UTF-8 -*-  

特别注意:上面这条语句一定要加在源代码的第一行!!!!

 

默认的python文件是采用ascii编码的,在头部加入# -*- coding: utf-8 -*-   则指定文件的编码格式是utf-8,那么就是说文件内你可以用中文或其他的文字了。

 




免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM