VectorDrawable con GoogleMap BitmapDescriptor
Tengo un problema con google mapsBitmapDescriptor
mientras crea un icono paraMarkerOptions
utilizandoVectorDrawable
, API 5.0+
Método utilizado para la creación:
@NonNull
private BitmapDescriptor getBitmapDescriptor(int id) {
return BitmapDescriptorFactory.fromResource(id);
}
Todo funciona muy bien cuandoid
el argumento contiene png dibujable, sin embargo, si lo intento conVectorDrawable
definido en xml, la aplicación siempre se bloquea cuandogoogleMap.addMarker(marker)
(BitmapDescriptor
No es nulo).
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.a.a.ae.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)
No importa cómo recupero dibujable, intenté crear un mapa de bits usandoBitmapFactory.fromResources
y despuésBitmapDescritpionFactory.fromBitmap
Pero los resultados son los mismos. Simplemente no funcionará con vectores dibujables. También probamos diferentes vectores, pero parece que la complejidad del vector no es el problema aquí.
¿Alguien sabe cómo solucionar este bloqueo?
@editar
Parece que el problema no fue con elBitmapDescriptior
en sí, sino más bien con cargaVectorDrawable
que estaba devolviendo un mapa de bits incorrecto. Sin embargo, la solución propuesta en respuesta todavía está bien.