空指针异常 - 未初始化BitmapDescriptorFactory

时间:2018-06-07 09:24:36

标签: android

以下是导致异常升级的代码

 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)上升未知来源错误???

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

请分享您的想法。

3 个答案:

答案 0 :(得分:0)

替换您的代码,如:

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

答案 1 :(得分:0)

使用以下代码:

  BitmapDescriptor icon = BitmapDescriptorFactory.fromResource(R.drawable.pin)

MarkerOptions markerOptions = new MarkerOptions().position(latLng)
         .title("Current Location")
         .snippet("Thinking of finding some thing...")
         .icon(icon);

mMarker = googleMap.addMarker(markerOptions);

答案 2 :(得分:0)

如果你使用矢量drawables或基于xml的drawables,就会发生这种情况。您需要使用.png文件。

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