java NullPointerException使用NonHierarchicalDistanceBasedAlgorithm从ClusterManager中删除项
我正在使用谷歌地图和集群开发一款Android应用
当我试图从集群管理器中删除一个项目时,我收到一个空指针异常
E/UncaughtException: java.lang.NullPointerException: Attempt to invoke interface method 'boolean java.util.List.remove(java.lang.Object)' on a null object reference
at com.google.maps.安卓.quadtree.PointQuadTree.remove(PointQuadTree.java:176)
at com.google.maps.安卓.quadtree.PointQuadTree.remove(PointQuadTree.java:171)
at com.google.maps.安卓.quadtree.PointQuadTree.remove(PointQuadTree.java:153)
at com.google.maps.安卓.clustering.algo.NonHierarchicalDistanceBasedAlgorithm.removeItem(NonHierarchicalDistanceBasedAlgorithm.java:95)
at com.google.maps.安卓.clustering.algo.PreCachingAlgorithmDecorator.removeItem(PreCachingAlgorithmDecorator.java:61)
at com.google.maps.安卓.clustering.ClusterManager.removeItem(ClusterManager.java:161)
at com.company.myApp.controllers.MapClusterManager.removeItem(MapClusterManager.java:72)
引发异常的代码如下所示:
if(clusterManager.getAlgorithm().getItems().contains(mapClusterItem)) {
clusterManager.removeItem(mapClusterItem); // <-- NPE here
clusterManager.cluster();
}
如你所见,我实际上是在删除之前检查该项目的存在
群集设置如下所示:
clusterManager = new ClusterManager<MapClusterItem>(context, googleMap);
algo = new NonHierarchicalDistanceBasedAlgorithm<MapClusterItem>();
clusterManager.setAlgorithm(algo);
问题在于点四叉树。remove(双x,双y,T项)(谷歌库)抛出异常。 有人知道怎么解决吗
这个GridBasedAlgoritm
不适合我的情况。我想用
NonHierarchicalDistanceBasedAlgorithm
我正在使用Google Maps Utils中的集群库
compile 'com.google.maps.安卓:安卓-maps-utils:0.4.+'
# 1 楼答案
这是库中的一个bug,它将很快被交付一个固定版本,正如这里所说:
https://github.com/googlemaps/android-maps-utils/issues/348