I have a problem with google maps BitmapDescriptor when creating an icon for MarkerOptions using VectorDrawable , API 5.0 +
Method used to create:
@NonNull private BitmapDescriptor getBitmapDescriptor(int id) { return BitmapDescriptorFactory.fromResource(id); }
Everything works fine when the id argument contains png drawable, however if I try it with the VectorDrawable defined in xml, the application always crashes when googleMap.addMarker(marker) ( BitmapDescriptor not null).
11-05 10:15:05.213 14536-14536/xxx.xxxxx.app E/AndroidRuntime: FATAL EXCEPTION: main Process: xxx.xxxxx.app, PID: 14536 java.lang.NullPointerException at com.google.aaae.a(Unknown Source) at com.google.maps.api.android.lib6.d.dn.<init>(Unknown Source) at com.google.maps.api.android.lib6.d.dm.a(Unknown Source) at com.google.maps.api.android.lib6.d.ag.<init>(Unknown Source) at com.google.maps.api.android.lib6.d.eu.a(Unknown Source) at com.google.android.gms.maps.internal.j.onTransact(SourceFile:167) at android.os.Binder.transact(Binder.java:380) at com.google.android.gms.maps.internal.IGoogleMapDelegate$zza$zza.addMarker(Unknown Source) at com.google.android.gms.maps.GoogleMap.addMarker(Unknown Source) at xxx.xxxxx.app.ui.details.DetailActivity.lambda$initGoogleMaps$23(DetailActivity.java:387) at xxx.xxxxx.app.ui.details.DetailActivity.access$lambda$10(DetailActivity.java) at xxx.xxxxx.app.ui.details.DetailActivity$$Lambda$13.onMapReady(Unknown Source) at com.google.android.gms.maps.SupportMapFragment$zza$1.zza(Unknown Source) at com.google.android.gms.maps.internal.zzl$zza.onTransact(Unknown Source) at android.os.Binder.transact(Binder.java:380) at com.google.android.gms.maps.internal.av.a(SourceFile:82) at com.google.maps.api.android.lib6.d.fa.run(Unknown Source) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5221) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
It doesn't matter how I extract the drawable, tried to create a bitmap using BitmapFactory.fromResources and later BitmapDescritpionFactory.fromBitmap , but the results are the same. It just won't work with a vector. I tried different vectors, but it seems that the problem with the vector is not a problem.
Does anyone know how to fix this error?
@edit
It seems that the problem was not in BitmapDescriptior itself, but in the loading of VectorDrawable , which returned the wrong bitmap. However, the solution proposed in response is still excellent.
android vector-graphics google-maps
Than Nov 05 '15 at 15:24 2015-11-05 15:24
source share