2011-04-12 1 views
3

스크립트 :왜 MonkeyRunner.waitForConnection는() 내 환경에서 작동하지 않습니다

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice 
device = MonkeyRunner.waitForConnection(5,'192.168.6.60:5555') 
device.installPackage('Douban_Radio.apk') 

가 실행하기 전에

~/android-sdk-linux_86/tools$adb connect 192.168.6.60:5555 
connected to 192.168.6.60:5555 
~/android-sdk-linux_86/tools$adb devices 
List of devices attached 
192.168.6.60:5555 device 

monkeyrunner의 출력 :

~/android-sdk-linux_86/tools$./monkeyrunner monkeyrunnerTest.py 
110412 18:12:35.017:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions] Script terminated due to an exception 
110412 18:12:35.017:S [main] [com.android.monkeyrunner.MonkeyRunnerOptions]Traceback (most recent call last): 
    File "/home/jobsyang/android-sdk-linux_86/tools/monkeyrunnerTest.py", line 6, in <module> 
    device.installPackage('Douban_Radio.apk') 
AttributeError: 'NoneType' object has no attribute 'installPackage' 

......

가 실행 된 후 :

~/android-sdk-linux_86/tools$adb devices 
adb server is out of date. killing... 
* daemon started successfully * 
List of devices attached 

MonkeyRunner.waitForConnection, 작업과 장치에 ADB 연결을 죽이고하지 않는 이유 난 그냥 몰라? 제발, 도와 줘서 고마워!

난 로컬 ENV에서 AVD를 시작하고, 연결된 장치는 :

~/android-sdk-linux_86/tools$adb devices 
List of devices attached 
emulator-5554 device 
192.168.6.60:5555 device 

ADB 명령을 사용하면 정확 다음 MonkeyRunner 함께

~/android-sdk-linux_86/tools$adb -s emulator-5554 install Douban_Radio.apk 
859 KB/s (287518 bytes in 0.326s) 
    pkg: /data/local/tmp/Douban_Radio.apk 
Success 

~/android-sdk-linux_86/tools$adb -s 192.168.6.60:5555 install Douban_Radio.apk 
2108 KB/s (287518 bytes in 0.133s) 
    pkg: /data/local/tmp/Douban_Radio.apk 
Success 

. 스크립트의 waitForConnection

MonkeyRunner.waitForConnection (5, 'emulator-5554'),
하지만 MonkeyRunner.waitForConnection (5, '192.168.6.60 : 5555') 여전히 작동하지 않습니다.

PS : 192.168.6.60은 adb로 연결된 실제 장치의 IP입니다.

실제 장치의 serialNumber가 잘못되었지만 "adb -s 192.168.6.60:5555 install Douban_Radio.apk"명령이 작동하는 이유는 무엇입니까?

답변

3

waitForConnection의 두 번째 매개 변수는 에뮬레이터의 경우 기기의 일련 번호는 ''emulator-<port>입니다 :

device = MonkeyRunner.waitForConnection(5,'emulator-5554') 
+0

도움을 주셔서 감사하지만 문제는 해결되지 않습니다. 정보가 업데이트되었습니다. 한번보세요. 고마워요. – jobsyang

+1

'에뮬레이터 -5554'또는 기기의 일련 번호를 사용하면 어떤 문제가 발생합니까? –

5
adb server is out of date. killing... 

내 생각 엔 당신이 당신의 컴퓨터에 하나 이상의 ADB 실행 파일을 가지고있다 .

수동, 당신은 Monkeyrunner 다음 ADB의 다른 버전을 사용

는, 기존 서버를 발견 TCP를 지원 (중 오래된 또는 새로운 의미)과 사망 날짜를 벗어 ADB의 버전을 사용하는 연결하면 그것. 그런 다음 당신이 말한 적이 없기 때문에 당신의 tcp 연결 장치에 대해 모르는 다른 버전을 시작합니다 (그리고 그것은 tcp를 지원하는 버전이 아닐 수도 있습니다).

어떤 디바이스 이후

, 당신은 확인 날짜 밖으로 ADB 서버를 찾을 그것을 죽이고, 당신을 시작하고 여전히 장치를 찾을 수없는이 없기 때문에 실패 ...

검색 (find)를 시도/-name는 "ADB"

다음은 당신이 작동 하나를 사용하고 있는지 확인 될 때까지 이름을 변경, 맹목적 중 하나를 삭제하지 마십시오 그들

의 각 ADB 버전을 실행합니다.