首页 / 浏览问题 / 移动GIS / 问题详情
软件ANR,错误每次都是一样
55EXP 2021年06月22日
E/SurfaceHolder: Exception locking surface
    java.lang.IllegalStateException: Surface has already been released.
        at android.view.Surface.checkNotReleasedLocked(Surface.java:698)
        at android.view.Surface.lockCanvas(Surface.java:399)
        at android.view.SurfaceView$2.internalLockCanvas(SurfaceView.java:1679)
        at android.view.SurfaceView$2.lockCanvas(SurfaceView.java:1639)
        at com.supermap.mapping.dyn.DynamicView.d(DynamicView.java:362)
        at com.supermap.mapping.dyn.DynamicView.run(DynamicView.java:646)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:923)

您好,我发现以这个二次作为开发,极容易产生ANR,具体的报错如上所示,也不太懂为何会这样??

1个回答

您好,您那边具体使用了哪些功能呢?是否使用了动态图层,报错信息是动态图层报的错误。如果不加载动态图层是否会出现ANR?使用的iMobile for Android版本是多少,Android程序的启动模式麻烦告知一下。
9,127EXP 2021年06月23日
我这边使用动态图层加载定位图标,开启一个timertask实现实时定位展示;没试过不使用动态图层的;IMobile的版本好像为10.0.1或者10.1;启动模式是什么意思,activkty的吗?就是正常的标准模式。

还有一个问题,就是这个程序切到后台,容易被回收,可能两三分钟的事情,是不是本身这个就比较占内存啊,有没有优化的方法这些呢?
您好,您那边能否给一个简单的demo能够重现你问题的,我这边测试不会出现anr,切换到后台也没有被回收
啊?这个咋给呢?就是把一些功能删除,还是我直接给您一个安装包,然后给您一些数据?

这与加载的数据有没有关系呢?比如二维数据大小不一样,可能也会导致占用内存过大,然后进行回收?
最好是能给一个能跑的demo,这样我可以看一下您的代码和工程配置。你们手机内存是多少?
我的挺大了,我这12G的,好的,那我另外给您搞一个能够复现的(代码写的有点乱,新手)。。我感觉就是一些很正常的操作,跳转,编录,然后回调。。。可能有点大啊。。我做好了发您QQ。
...