插曲1-项目开始前夕【我的第一次云项目连载】
折腾一天准备搞个android客户端访问自己搭建的arcgis服务器,结果遇到这么一个问题,经过各种排错方法搞了几乎一天才找到原因。
12-14 17:02:48.476: E/ArcGIS(6730): java.lang.NullPointerException
12-14 17:02:48.476: E/ArcGIS(6730): at com.esri.android.map.ags.ArcGISTiledMapServiceLayer.initLayer(Unknown Source)
12-14 17:02:48.476: E/ArcGIS(6730): at com.esri.android.map.ags.ArcGISTiledMapServiceLayer$1.run(Unknown Source)
12-14 17:02:48.476: E/ArcGIS(6730): at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:442)
12-14 17:02:48.476: E/ArcGIS(6730): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
解决:
错误:tiledMapServiceLayer = new ArcGISTiledMapServiceLayer(mapURL);
正确:dynamicLayer = new ArcGISDynamicMapServiceLayer(mapURL);
为什么呢?因为arcgis for anroid里面服务器分两类,一类是瓦片服务器 cached (tiled) map services,另一类是动态图 dynamic map services,相应的在加载地图时,要判断服务器发布地图类型是什么,根据具体情况使用相应API函数。
更多相关文章
- Android(安卓)四种加载方式详解(standard singleTop singleTask .
- 去掉安装地图
- android 百度地图长按弹出气泡 popupWindow
- Android(安卓)百度地图地位指针
- 高德地图自定义marker图片相关
- 用百度地图API实现Android定位功能(2.6版本为例)
- Android向node.js编写的服务器发送数据并接收请求
- Android(安卓)如何将Canvas上绘制的内容保存成本地图片
- Android(安卓)利用 Webservice 获取手机号码归属地