首页 / 浏览问题 / 移动GIS / 问题详情
MBTilesLayerView初始化异常
25EXP 2021年08月31日

使用产品:SuperMap iClient 8C(2017) for Android 操作系统:安卓
数据类型: Mbtiles
问题详细描述:运行了https://github.com/SuperMap/iMobile-Lite-for-Android/tree/master/SampleCode/imobilelite-map官方的demo,在SimpleDemo.java类里面加上了

MBTilesLayerView mbTilesLayerView = new MBTilesLayerView(this, "/sdcard/Android/8-9.mbtiles");
mapView.addLayer(mbTilesLayerView);

这俩行代码,并且把原本的

mapView.addLayer(baseLayerView);

注释了,调用前也给了存储权限,本地也存在8-9.mbtiles这个文件,但是在使用的时候,

MBTilesLayerView

这个类(在iclient_android_8.1.0.jar这个jar包里面)的100行,也就是

this.metaResolutions = (double[])this.metadata.resolutions.clone();

这一行代码报空指针,因为我的mbtiles数据里面没有resolutions这个字段,所以执行clone操作会报错,然后就无法往下再走。

问题重现步骤: 通过改demo的代码想加载mbtiles的数据,但是iclient_android_8.1.0.jar包里面报错了,因为目前提供的mbtiles数据是更改不了的,想知道怎么解决。

1个回答

您好,您那边使用的是iclient for Android,该产品已经开源,您那边可以在GitHub上下载源码看下具体问题,谢谢。下载地址:

https://github.com/SuperMap/iMobile-Lite-for-Android
9,137EXP 2021年08月31日

用的就是里面的代码,imobilelite-map这个,但是报错了啊,上面的描述没细看吧

您好,不好意思,该产品已经开源,不提供技术支持服务,有问题可以连调源码直接修改呢
哦哦,看到了,里面的jar包代码已经提供了啊,那可以改就可以了
...