首页 > 解决方案 > 空指针异常 - BitmapDescriptorFactory 未初始化

问题描述

这是导致异常上升的代码

 mMarker = mMap.addMarker(new MarkerOptions().icon(BitmapDescriptorFactory
                    .fromResource(R.drawable.pin)).position(latLng));

添加崩溃日志:

com.google.android.gms.common.internal.zzbq.checkNotNull (Unknown Source)
com.google.android.gms.maps.model.BitmapDescriptorFactory.zzawe (Unknown Source)
com.google.android.gms.maps.model.BitmapDescriptorFactory.fromResource (Unknown Source)
com.app.myapplication.fragments.BaseHomeFragment$4.onReceive (BaseHomeFragment.java:206)
android.app.LoadedApk$ReceiverDispatcher$Args.run (LoadedApk.java:1185)
android.os.Handler.handleCallback (Handler.java:751)
android.os.Handler.dispatchMessage (Handler.java:95)
android.os.Looper.loop (Looper.java:154)
android.app.ActivityThread.main (ActivityThread.java:6836)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1520)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1410)

为什么这个BitmapDescriptorFactory.fromResource(R.drawable.pin)上升未知源错误???

我可以使用空检查来处理这个问题,但这并不能解决确切的问题。

请分享你的想法。

标签: android

解决方案


如果您使用矢量可绘制对象或基于 xml 的可绘制对象,则会发生这种情况。您需要使用 .png 文件。

 BitmapDescriptor icon = 
 BitmapDescriptorFactory.fromResource(R.drawable.pin);                 
 mMarker = mMap.addMarker(new MarkerOptions()
                    .position(latLng)
                    .icon(icon));

推荐阅读