用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,那么就是說文件內你可以用中文或其他的文字了。