Recently I decided to change the Google Maps API to load asynchronously in order to improve initial application load time. Unfortunately I found that sometimes this will cause Sencha Touch not to load properly when initializing the map component. After some investigation I found that this is because Sencha Touch looks for the presence of the google.maps variable, and if found, proceeds with loading and rendering the map.
However when loading Google Maps asynchronously (either by adding the async tag to the script, or using the Google loader with a callback) the remote script immediately returns with an empty google.maps variable while waiting for the main Google Maps API to load. In the rare situations where this initial Google maps file is loaded and Sencha Touch loads the map before the main Google Maps file is loaded there is an error. A possible fix would be to look to the presence of a deeper google.maps variable, such as google.maps.version - which would indicate the file is fully loaded.
Checking for this google.maps variable happens at the beginning of the renderMap function. A link to the source has been provided below. Please let me know if I can offer any additional information.