蜂巢中的ConcurrentModification异常

发布于 2024-12-15 05:23:10 字数 754 浏览 0 评论 0原文

我在处理地图时遇到此错误(使用 GetDirection API 在地图上绘制线条)。 我已经使用了 CopyOnWriteArrayList 但它有时会抛出 ConcurrentModification 异常。

CopyOnWriteArrayList<GeoPoint> pointArray;
pointArray =  parcer.getDirectionParcer(jsonObject);

GeoPoint gp1;
GeoPoint gp2 = src;
Iterator<GeoPoint> it1 = pointArray.iterator();

//for(int i=0;i<pointArray.size();i++) // the last one would be crash

Utility.debugger("2");
while (it1.hasNext()) {
    try {
        gp1 = gp2;
        gp2 = (GeoPoint) it1.next();
        mMapView.getOverlays().add(new MyOverLay(gp1,gp2,2,color));
    } catch (ConcurrentModificationException e) {
        Utility.debugger("exception");
        e.printStackTrace();
    }
}

它在 it1.next() 中给出错误。

I'm getting this error while working on map (Drawing line on map using GetDirection API).
I have used CopyOnWriteArrayList still it sometimes throws ConcurrentModification exception.

CopyOnWriteArrayList<GeoPoint> pointArray;
pointArray =  parcer.getDirectionParcer(jsonObject);

GeoPoint gp1;
GeoPoint gp2 = src;
Iterator<GeoPoint> it1 = pointArray.iterator();

//for(int i=0;i<pointArray.size();i++) // the last one would be crash

Utility.debugger("2");
while (it1.hasNext()) {
    try {
        gp1 = gp2;
        gp2 = (GeoPoint) it1.next();
        mMapView.getOverlays().add(new MyOverLay(gp1,gp2,2,color));
    } catch (ConcurrentModificationException e) {
        Utility.debugger("exception");
        e.printStackTrace();
    }
}

It gives error in it1.next().

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眼泪淡了忧伤 2024-12-22 05:23:10

您是否在非 UI 线程中调用此代码?

ConcurrentModificationException 可能是由于在非 UI 线程中添加叠加层而导致,而 UI 线程正在尝试访问叠加层。您只能在 UI 线程上修改叠加层。

Are you calling this code in a non UI thread?

The ConcurrentModificationException may be due to adding overlays in an Non UI thread, while the UI thread is trying to access the overlays. You can only modify overlays on the UI thread.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文