You need to override here, won't work if just add it to your viewport.
So create a folder "override" in your app folder and in it a folder "viewport".
Then put the above code in an Android.js file and adjust the app namespace:
Then add 'myApp.override.viewport.Android' in the requires array in your app.js file.
You can add a alert message in the doFix method to make sure it's called on your Android device.
Thanks to this post, we looked into the source and found the pertinent Sencha code that was released to fix it. Using those changes, we were able to fix the problem for pre-4 Android.
What is your fix ?. I'm having the same issue after taking a picture using Cordova 2.4. Seems Android is not getting the correct feedback dimensions and reports a wrong height. After taking a pic there's a switch between landscape to portrait, then a resume event is fired in order to get the App to the front, then Sencha fix the layout to be rendered in portrait but with an incorrect height.
Check out the most recent beta build, and look inside the Android Viewport code. Sencha added a listener there, just copy over that change to your Viewport.
I did that a month ago, but that didn't work for me. There's a problem with the Cordova webview reporting the correct dimensions width and height after a resume event, lets say after a sleep or after take a picture or after a barcode scanning. Anything the puts the app in the back and then put it back to the front.