Cyril Mottier

“It’s the little details that are vital. Little things make big things happen.” – John Wooden

Réinitialiser La Connexion Entre ADT Et ADB

Bonjour tout le monde ! Me revoilà après un petit moment d'absence sur ce blog. Ne vous inquiétez surtout pas je n'ai pas l'intention de laisser tomber la rédaction d'articles sur ce blog. Disons simplement que la préparation d'un évènement sportif m'a prise tout mon temps libre durant la semaine.

Cet article fait suite à l'astuce sur la prise de copie d'écran et traite d'une astuce permettant de ne pas redémarrer Eclipse et/ou l'émulateur lorsque la connexion entre Eclipse et l'émulateur semble rompue. Il arrive en effet qu'on assiste, lors de ses développement à un affichage console ressemblant à ceci :

[2009-03-04 14:13:10 - adb]
[2009-03-04 14:13:10 - adb]This application has requested the Runtime to terminate it in an unusual way.
[2009-03-04 14:13:10 - adb]Please contact the application's support team for more information.
[2009-03-04 14:13:10 - DeviceMonitor]Adb connection Error:Une connexion existante a dû être fermée par l'hôte distant
[2009-03-04 14:13:10 - ddms]ADB rejected shell command (pm install "/data/local/tmp/MyHouse.apk"): 
[2009-03-04 14:13:10 - Logcat]Une connexion existante a dû être fermée par l'hôte distant
java.io.IOException: Une connexion existante a dû être fermée par l'hôte distant
    at sun.nio.ch.SocketDispatcher.read0(Native Method)
    at sun.nio.ch.SocketDispatcher.read(Unknown Source)
    at sun.nio.ch.IOUtil.readIntoNativeBuffer(Unknown Source)
    at sun.nio.ch.IOUtil.read(Unknown Source)
    at sun.nio.ch.SocketChannelImpl.read(Unknown Source)
    at com.android.ddmlib.AdbHelper.executeRemoteCommand(Unknown Source)
    at com.android.ddmlib.Device.executeShellCommand(Unknown Source)
    at com.android.ddmuilib.logcat.LogPanel$3.run(Unknown Source)
[2009-03-04 14:13:11 - DeviceMonitor]Connection attempts: 1
...

L'astuce, bien que triviale, n'est pas forcément facile à dénicher dans le plugin ADT d'Eclipse. Il suffit en réalité de faire un “reset” de ADB. Pour ce faire, aller dans l'onglet Devices (si ce dernier n'est pas présent, il est accessible en faisant Window > Show View > Android/Devices), puis faites Reset adb.