I was facing this problem time and again.Got around a lot of forums, but couldn't find a logical solution for the issue.
I used to get this error message, . . . Uploading test.apk onto device 'emulator-5554' Failed to install test.apk on device 'emulator-5554': timeout Launch canceled!
this error is thrown as the start of emulator and deployment of application takes some significant time and before that the emulator times out.
A simple fix for this problem is keeping the emulator open when this problem occurs, *just run the application again. This only deploys the application on to the already started emulator *. There is not much time consumed during this run as the major part of the time during app deployment is because of slow start up of emulator.
Hope this helps!