«Не удалось декодировать изображение. Предоставленное изображение должно быть растровым »- SetIcon на маркере карты Google выдает ошибку - PullRequest
0 голосов
/ 26 июня 2018

При попытке установить значок на маркере карты Google Maps появляется следующая ошибка:

[ERR] 26/06/2018 10:02:25 утра: не удалось декодировать изображение. Обеспеченный изображение должно быть растровым. [ERR] 26/06/2018 10:02:25 утра: в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] в <0711a0626e0e4d58a44e8ca32787a4a9>: 0 в Java.Interop.JniEnvironment + InstanceMethods.CallVoidMethod (Экземпляр Java.Interop.JniObjectReference, Java.Interop.JniMethodInfo метод, Java.Interop.JniArgumentValue * args) [0x00069] в : 0 в Android.Runtime.JNIEnv.CallVoidMethod (System.IntPtr jobject, System.IntPtr jmethod, Android.Runtime.JValue * parms) [0x0000e] в <5680b8d3acca4700bde9a113c467e3e5>: 0 в Android.Runtime.JNIEnv.CallVoidMethod (System.IntPtr jobject, System.IntPtr jmethod, Android.Runtime.JValue [] parms) [0x00017] в <5680b8d3acca4700bde9a113c467e3e5>: 0 в Android.Gms.Maps.Model.Marker.SetIcon (Значок Android.Gms.Maps.Model.BitmapDescriptor) [0x0004b] в <51f505f20f3f4c27854ba8f47994abdb>: 0 в AMCS.Mobile.Mapping.Android.MarkerManager.UpdateMarker (AMCS.Mobile.Entity.Mapping.IMarker markerInfo) [0x00083] в : 0 в AMCS.Mobile.Mapping.Android.MapHelper.UpdateMarker (AMCS.Mobile.Entity.Mapping.IMarker markerInfo) [0x00000] в : 0 в AMCS.Mobile.AMCSMobile.Client.Android.CollectionRouteView.b__462_0 () [0x00000] в <1d292c66dbaa42139a432bad3cbbbc7b>: 0 в Java.Lang.Thread + RunnableImplementor.Run () [0x00008] в <5680b8d3acca4700bde9a113c467e3e5>: 0 в Java.Lang.IRunnableInvoker.n_Run (System.IntPtr jnienv, System.IntPtr native__this) [0x00008] в <5680b8d3acca4700bde9a113c467e3e5>: 0 в (оболочка динамического метода) System.Object: 6aee8cf7-156f-44a9-94d5-15cb0790d815 (intptr, intptr)
--- Конец управляемой трассировки стека Java.Lang.RuntimeException --- com.google.maps.api.android.lib6.common.apiexception.b: Не удалось декодировать изображение Предоставленное изображение должно быть растровым. в com.google.maps.api.android.lib6.impl.n.a (: com.google.android.gms.dynamite_dynamitemodulesb @ 12685024 @ 12.6.85 (040406-197041431): 12) в com.google.maps.api.android.lib6.impl.o.a (: com.google.android.gms.dynamite_dynamitemodulesb @ 12685024 @ 12.6.85 (040406-197041431): 7) в com.google.maps.api.android.lib6.impl.cy.a (: com.google.android.gms.dynamite_dynamitemodulesb @ 12685024 @ 12.6.85 (040406-197041431): 186) в com.google.android.gms.maps.model.internal.q.onTransact (: com.google.android.gms.dynamite_dynamitemodulesb @ 12685024 @ 12.6.85 (040406-197041431): 87) на android.os.Binder.transact (Binder.java:507) на com.google.android.gms.maps.model.internal.l $ a $ a.n (неизвестный источник) на com.google.android.gms.maps.model.Marker.setIcon (неизвестный источник) в mono.java.lang.RunnableImplementor.n_run (собственный метод) в mono.java.lang.RunnableImplementor.run (RunnableImplementor.java:30) на 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:6780) в java.lang.reflect.Method.invoke (родной метод) в com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:1496) на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1386)

Я вижу, что происходит сбой в методе UpdateMarker, который выглядит следующим образом:

    public void UpdateMarker(IMarker markerInfo)
    {
      // _markerLookup is a dictionary defined earlier as:
      // private Dictionary<IMarker,Android.Gms.Maps.Model.Marker> _markerLookup = new Dictionary<IMarker, Android.Gms.Maps.Model.Marker>();
      // It is populated elsewhere
      // Check if the dictionary contains a key for the given value
      if (_markerLookup.ContainsKey(markerInfo))
      {
        Android.Gms.Maps.Model.Marker marker = _markerLookup[markerInfo];
        marker.Position = new LatLng(markerInfo.MapCoordinate.Lat, markerInfo.MapCoordinate.Lng);
        marker.Draggable = markerInfo.MarkerOptions.IsDraggable;

        // Create BitmapDescriptor from Resource - Blue_Vehicle definitely exists and is a .png image
        BitmapDescriptor bitmapDesc = 
        BitmapDescriptorFactory.FromResource(Resource.Drawable.Blue_Vehicle);

        if (bitmapDesc != null)
        {
          marker.SetIcon(bitmapDesc);
        }  
      }
    }

Метод marker.SetIcon ищет BitMapDescriptor, который, как описано выше, создается из ресурса изображения.

Я не понимаю, почему это вызывает исключение. Я был бы очень признателен, если бы кто-то смог пролить свет на эту проблему.

...