Epic Saga Chapter 5: Wherein I learn to Hate the Android Emulator
This post is the fifth post in the series: Uploading Images from PhoneGap/Cordova to Azure Storage using Mobile Services
In the previous chapter of my epic saga to create a Cordova app that uploads binary images files directly to Azure Blob storage, I installed the Multi-Device Hybrid Apps extension for Visual Studio and was excited by the tooling goodness and the Ripple emulator. But alas, Ripple also didn’t support the APIs that I needed. So, back to my original plan of using the Android emulator.
Unlike with my previous Eclipse + Android SDK-based attempts, when I used the Android SDK installed by the Cordova extensions to Visual Studio, I got the app running on the Android emulator. OK, so it was as slow as I remembered it being—very slow to start the emulator and even pretty slow to deploy. But the app was running, success! Now to try and upload an image, what??
I knew that this must be a problem with the AVD configuration, because the Android emulator is supposed to support camera capture. Sure enough, I needed to select an emulation mode for the back camera on my AVD, I chose to use the webcam.
After another painfully slow restart of the emulator, the camera emulator was running (yes!), and I was able to capture an image off of my webcam…so far so good. Then I click the check (accept) button and….
I click the button again and again, but in vain. The capture button works, recapture, cancel, they all work. Just I can’t get the accept button to do its thing and proceed.
(And, yes I also tried the emulated camera (the ugly old checkerboard pattern, same problem). After spending some time Google/Bing researching the issue, I came to one overwhelming conclusion…the Android emulator sucks and everyone hates it, which I guess now includes me.
It was starting to look like I was going to have to buy a physical Android device just so that I could test my app, but I had one more thing that I wanted to try…
Stay tuned in for the next installment… Chapter 6: Wherein I learn to Remotely Build and Run on the iOS Simulator But Am Ultimately Disappointed