knisleyj

map.addLayer() fails on some Android devices

Discussion created by knisleyj on Apr 24, 2012
Latest reply on May 14, 2012 by knisleyj
I built a mobile app that contains six layers.  For various reasons, these six layers each exist as individual kmz files.  When the app starts it automatically adds a basemap layer and a default kmz layer to the map, but does not initialize any other kmz layer unless the user specifically selects it.  When a new layer is selected, the current kmz layer is hidden and the newly selected kmz layer is added to the map.  In all of the desktop browsers, as well as my phone (Droid Bionic with Android 2.3.4) this interaction works just fine.  However, on a Toshiba Thrive tablet running Android 3.1, any kmz layer that I try to add with map.addLayer() will fail if the addLayer() method is called after the map is done loading the basemap and the first kmz layer.

Oddly enough, if I add all six immediately (which I don't want to do for performance reasons), all six load fine.  If I load one initially and then I wait to load the others when the user selects them, then I get:  "Error: Unable to laod KML:  http://.../myLayer.kmz timeout exceeded"

All I'm doing on the button click is this:
var myLayer = new esri.layers.KMLLayer("http://.../mylayer.kmz", {
 id: "My layer",
 infoTemplate: new esri.InfoTemplate("${name}", "${description}")
});
map.addLayer(myLayer);

and again, it works perfectly fine on most browsers and devices, but does not work at all on the Toshiba Thrive tablet.

Any thoughts?

Outcomes