android - 在谷歌地图上创建标记时出现 IllegalStateException

标签 android google-maps illegalstateexception

您好,我正在尝试在 Google map v2 上显示一些标记点。一切都很好,直到我发现这个错误。出于某种原因,如果我加载带有 2 个指针的 map ,然后关闭它并再次重新加载它,我会收到此消息:

"IllegalStateException 无包含点"

当我调用时出现这个错误:

 LatLngBounds bounds = builder.build();

这就是我在 map 上放置点的方式:

    // Point the map's listeners at the listeners implemented by the cluster
    // manager.

    googleMap.setOnMarkerClickListener(mClusterManager);

    builder = new LatLngBounds.Builder();

    for (Ad ad : Constants._results)
    {
        builder.include(new LatLng(ad.getLat(), ad.getLon()));
    }

    googleMap.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() {
        @Override
        public void onCameraChange(CameraPosition cameraPosition)
        {
            int padding = 50; // offset from edges of the map in pixels
            try{
                LatLngBounds bounds = builder.build();
                CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, padding);
                googleMap.moveCamera(cu);
                googleMap.setOnCameraChangeListener(mClusterManager);
            }catch (Exception e)
            {
                e.printStackTrace();
            }
        }
    });

有人能帮忙吗?

日志:

-30 14:11:11.267  20651-20874/com.myapp.user E/com.newrelic.agent.android﹕ Error in fireOnHarvestFinalize
java.util.ConcurrentModificationException
        at java.util.HashMap$HashIterator.nextEntry(HashMap.java:806)
        at java.util.HashMap$EntryIterator.next(HashMap.java:843)
        at java.util.HashMap$EntryIterator.next(HashMap.java:841)
        at com.newrelic.agent.android.metric.MetricStore.getAllByScope(MetricStore.java:63)
        at com.newrelic.agent.android.metric.MetricStore.getAllUnscoped(MetricStore.java:74)
        at com.newrelic.agent.android.harvest.HarvestDataValidator.ensureActivityNameMetricsExist(HarvestDataValidator.java:41)
        at com.newrelic.agent.android.harvest.HarvestDataValidator.onHarvestFinalize(HarvestDataValidator.java:15)
        at com.newrelic.agent.android.harvest.Harvester.fireOnHarvestFinalize(Harvester.java:580)
        at com.newrelic.agent.android.harvest.Harvester.execute(Harvester.java:271)
        at com.newrelic.agent.android.harvest.HarvestTimer.tick(HarvestTimer.java:73)
        at com.newrelic.agent.android.harvest.HarvestTimer.tickIfReady(HarvestTimer.java:56)
        at com.newrelic.agent.android.harvest.HarvestTimer.run(HarvestTimer.java:32)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:279)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:152)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
        at java.lang.Thread.run(Thread.java:841)

最佳答案

我认为你的问题出在这里

 for (Ad ad : Constants._results)
    {
        builder.include(new LatLng(ad.getLat(), ad.getLon()));
    }

Constants._results 必须为空,因此您的构建器中没有 LatLng 点。调试检查。

关于android - 在谷歌地图上创建标记时出现 IllegalStateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28235419/

相关文章:

javascript - android系统: Transformer Prime上的 "touchmove"事件

java - 根据缩放级别在 map 上缩放自定义标记

javascript - react native Airbnb 标记 : Markers successfully disappear, 但不重新出现

java - IllegalStateException 与 UnsupportedOperationException

java - 我看到 "Re-entry is not allowed"是什么意思?

android - 如何修复 onSaveInstanceState 中的 java.lang.IllegalStateException

android - Android上的Amazon App Store ad mob服务的SDK?

android - 如何在android中使用自签名证书注册的https链接?

android - Android Studio 3.3 中没有消息 View

java - Android 地理编码功能不如 iOS