Al utilizar MonkeyRunner, de vez en cuando me sale un error como:¿Cómo capturo SocketExceptions en MonkeyRunner?
120830 18:39:32.755:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice] Unable to get variable: display.density
120830 18:39:32.755:S [MainThread] [com.android.chimpchat.adb.AdbChimpDevice]java.net.SocketException: Connection reset
Por lo que he leído, a veces la conexión ADB va mal, y hay que volver a conectar. El único problema es que no puedo ver el SocketException
. Voy a terminar mi código de este modo:
try:
density = self.device.getProperty('display.density')
except:
print 'This will never print.'
Pero la excepción, aparentemente, no se eleva hasta el final a la persona que llama. He verificado que MonkeyRunner/jython puede capturar las excepciones de Java de la manera que cabría esperar:
>>> from java.io import FileInputStream
>>> def test_java_exceptions():
... try:
... FileInputStream('bad mojo')
... except:
... print 'Caught it!'
...
>>> test_java_exceptions()
Caught it!
¿Cómo puedo lidiar con estas excepciones socket?
Bueno, tengo que decir que no se debe a una inestabilidad 'adb' pero las de MonkeyRuner/Chimpchat. [AndroidViewclient/culebra] (https://github.com/dtmilano/AndroidViewClient) utiliza un 'adbclient', un módulo de python que encapsula todo el diálogo con' adb' y es bastante estable. –