Android 已在map.clear()上发布未知的imageData引用

Android 已在map.clear()上发布未知的imageData引用,android,google-maps,google-maps-markers,Android,Google Maps,Google Maps Markers,我正在尝试绘制从服务器获取的多个标记,然后在某个事件中删除它们,然后在按“取消”按钮时重新绘制它们。每次我打电话 map.clear() 我得到这个错误 java.lang.IllegalArgumentException: Released unknown imageData reference` 这就是我在从服务器获取详细信息后添加标记的方式(通过调用plot_all_markers方法) try { for (int i = 0; i < Constant.

我正在尝试绘制从服务器获取的多个标记,然后在某个事件中删除它们,然后在按“取消”按钮时重新绘制它们。每次我打电话

map.clear() 
我得到这个错误

java.lang.IllegalArgumentException: Released unknown imageData reference`
这就是我在从服务器获取详细信息后添加标记的方式(通过调用plot_all_markers方法)

 try {
         for (int i = 0; i < Constant.spot_details.size(); i++) {
              LatLng latlng = new LatLng(Double.parseDouble(Constant.spot_details.get(i).geo_x),
              Double.parseDouble(Constant.spot_details.get(i).geo_y));
              final MarkerOptions marker = new MarkerOptions().position(latlng);

              if (Constant.spot_details.get(i).type.equals("a")) {
                  marker.icon(BitmapDescriptorFactory.fromResource(R.drawable.a_marker));
              } else if (Constant.spot_details.get(i).type.equals("b")) {
                  marker.icon(BitmapDescriptorFactory.fromResource(R.drawable.b_marker_grey));
              } else
                  marker.icon(BitmapDescriptorFactory.fromBitmap(Utils.string_to_bitmap(Constant.spot_details.get(i).logo, activity)));

                  marker.title(Constant.spot_details.get(i).name);
                  final Marker m=mMap.addMarker(marker);
                  all_markers.add(m);
                  animate_marker_fade_in(m);
                  plotted_spot_array.add(Constant.spot_details.get(i));
                  marker_map.put(marker.getPosition().latitude + marker.getPosition().longitude, i);
              }
      } catch (Exception e) {
          e.printStackTrace();
      }
这是我的Logcat输出

java.lang.IllegalArgumentException: Released unknown imageData reference
at maps.ce.i.a(Unknown Source)
at maps.ei.bh.c(Unknown Source)
at maps.ei.s.o(Unknown Source)
at maps.ei.bu.e(Unknown Source)
at com.google.android.gms.maps.internal.e$a.onTransact(:com.google.android.gms.alldynamite:205)
at android.os.Binder.transact(Binder.java:387)
at com.google.android.gms.maps.internal.IGoogleMapDelegate$zza$zza.clear(Unknown Source)
at com.google.android.gms.maps.GoogleMap.clear(Unknown Source)
at com.drishtigroup.needtopark.fragments.Demand.onOptionsItemSelected(Demand.java:499)
at android.support.v4.app.Fragment.performOptionsItemSelected(Fragment.java:2085)
at android.support.v4.app.FragmentManagerImpl.dispatchOptionsItemSelected(FragmentManager.java:2163)
at android.support.v4.app.FragmentController.dispatchOptionsItemSelected(FragmentController.java:304)
at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:410)
at android.support.v7.app.AppCompatActivity.onMenuItemSelected(AppCompatActivity.java:167)
at android.support.v7.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:100)
at android.support.v7.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:100)
at android.support.v7.app.ToolbarActionBar$2.onMenuItemClick(ToolbarActionBar.java:69)
at android.support.v7.widget.Toolbar$1.onMenuItemClick(Toolbar.java:169)
at android.support.v7.widget.ActionMenuView$MenuBuilderCallback.onMenuItemSelected(ActionMenuView.java:760)
at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:811)
at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:152)
at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:958)
at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:948)
at android.support.v7.widget.ActionMenuView.invokeItem(ActionMenuView.java:618)
at android.support.v7.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:139)
at android.view.View.performClick(View.java:5201)
at android.view.View$PerformClick.run(View.java:21163)
at android.os.Handler.handleCallback(Handler.java:746)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5443)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)

如何避免此错误?

IllegalArgumentException表示 异常,指示提供给方法或函数的参数对其预期用途无效,或与方法所期望的格式不同

在这种情况下,他们通过使用集群管理器清除标记来修复错误IllegalArgumentException:Released unknown imageData reference。这里建议不要直接从地图本身清除标记,而是使用群集管理器清除和添加标记

mClusterManager.clearItems();
mClusterManager.addItems(mMapVenueItems);
mClusterManager.cluster();

我希望它能帮助您解决您的问题。

IllegalArgumentException意味着 异常,指示提供给方法或函数的参数对其预期用途无效,或与方法所期望的格式不同

在这种情况下,他们通过使用集群管理器清除标记来修复错误IllegalArgumentException:Released unknown imageData reference。这里建议不要直接从地图本身清除标记,而是使用群集管理器清除和添加标记

mClusterManager.clearItems();
mClusterManager.addItems(mMapVenueItems);
mClusterManager.cluster();

我希望它能帮助您解决您的问题。

什么样的对象是
交叉项目
?它与地图有关吗?@antonio-这是一个简单的菜单项。点击该菜单项时,我调用map.clear()什么类型的对象是
交叉项
?它与地图有关吗?@antonio-这是一个简单的菜单项。点击该菜单项时,我调用map.clear(),我的应用程序中没有使用集群。您仍然认为ClusterManager更适合使用吗?我的应用程序中没有使用集群。你仍然认为ClusterManager更适合使用吗?
mClusterManager.clearItems();
mClusterManager.addItems(mMapVenueItems);
mClusterManager.cluster();