0

我使用下面的代码使用来自 android 的 api 2 将 ground ovelay 添加到谷歌地图。

LatLng ne = currentHole.getNe();
    LatLng sw = currentHole.getSw();
    LatLngBounds mOverlayBound = new LatLngBounds(ne,sw);
    BitmapDescriptor mDesc= BitmapDescriptorFactory.
    fromAsset(currentHole.getGroundOverLay()); GroundOverlayOptions mOverlayOp = new GroundOverlayOptions().image(mDesc).positionFromBounds(mOverlayBound).zIndex(2); mOverlayOp.bearing(0);
    gOverLay = googleMap.addGroundOverlay(mOverlayOp);

所有输入参数都是有效的,当我从资源而不是资产加载 BitMapDescriptor 时它工作正常,并且在最近我触摸代码进行一些更改之前,这段代码工作正常,然后它开始显示如下错误。

02-23 10:07:22.982: W/System.err(3538): java.lang.NullPointerException 

02-23 10:07:22.986: W/System.err(3538): at com.google.k.a.cj.a(Unknown 

       Source) 
02-23 10:07:22.986: W/System.err(3538): at 
        com.google.maps.api.android.lib6.c.dc.<init>(Unknown Source) 
02-23 10:07:22.986: W/System.err(3538): at   com.google.maps.api.android.lib6.c.db.a(Unknown Source) 
02-23 10:07:22.986: W/System.err(3538): at com.google.maps.api.android.lib6.c.eu.<init>(Unknown Source) 
02-23 10:07:22.986: W/System.err(3538): at com.google.maps.api.android.lib6.c.el.a(Unknown Source) 
02-23 10:07:22.986: W/System.err(3538): at com.google.android.gms.maps.internal.l.onTransact(SourceFile:182) 
02-23 10:07:22.986: W/System.err(3538): at android.os.Binder.transact(Binder.java:380) 
02-23 10:07:22.986: W/System.err(3538): at com.google.android.gms.maps.internal.IGoogleMapDelegate$a$a.addGroundOverlay(Unknown Source) 
02-23 10:07:22.986: W/System.err(3538): at com.google.android.gms.maps.GoogleMap.addGroundOverlay(Unknown Source) --
4

1 回答 1

0

我认为问题出在线路上

BitmapDescriptor mDesc= BitmapDescriptorFactory. fromAsset(currentHole.getGroundOverLay());

这可能会给你 NullpointerException。确保您只是将字符串作为存储在项目的assets 目录中的图像传递。可能currentHole.getGroundOverLay()不是assets目录中的有效图像,因此它给出了一个NullPointer。

于 2015-02-23T23:02:01.270 回答