c# - '图像解码失败。提供的图像必须是位图' - Google Map Marker 上的 SetIcon 引发错误
问题描述
尝试在 Google 地图地图标记上设置图标时出现以下错误:
[ERR] 2018 年 6 月 26 日上午 10:02:25:无法解码图像。提供的图像必须是位图。[ERR] 2018 年 6 月 26 日上午 10:02:25:在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <0711a0626e0e4d58a44e8ca32787a4a9>:0 在 Java.Interop.JniEnvironment+InstanceMethods.CallVoidMethod (Java.Interop .JniObjectReference 实例,Java.Interop.JniMethodInfo 方法,Java.Interop.JniArgumentValue* args) [0x00069] in :0 at Android.Runtime.JNIEnv.CallVoidMethod (System.IntPtr jobject, System.IntPtr jmethod, Android.Runtime.JValue* parms) [0x0000e] in <5680b8d3acca4700bde9a113c467e3e5>:0 at Android.Runtime.JNIEnv.CallVoidMethod (System.IntPtr jobject, System.IntPtr jmethod, Android.Runtime.JValue [] parms) [0x00017] in <5680b8d3acca47035e46:013c .Gms.Maps。
--- 托管 Java.Lang.RuntimeException 堆栈跟踪结束 --- com.google.maps.api.android.lib6.common.apiexception.b:无法解码图像。提供的图像必须是位图。在 com.google.maps.api.android.lib6.impl.na(:com.google.android.gms.dynamite_dynamitemodulesb@12685024@12.6.85 (040406-197041431):12) 在 com.google.maps.api。 android.lib6.impl.oa(: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。
我可以看到它在 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,如上所述,它是从图像资源创建的。
我不明白为什么它会抛出异常。如果有人能对这个问题有所了解,我将不胜感激。
解决方案
推荐阅读
- android - Queue Ble Android 仅准时发送
- reactjs - 模块解析失败:意外的令牌?
- vue.js - Eslint 会因 Vue 项目中的任何错误而中断构建
- powershell - ImageMagick @filename 引用多个输出
- java - 存储多个文本字段输入
- arrays - 尝试删除数组中的元素:Ruby
- python - PSET6 DNA:代码仅计算一个 STR 序列的最长连续重复次数
- angular - 如何从我的应用程序内的项目中获取资产文件?
- r - 在ggplot2中删除或合并标题并调整距离?
- javascript - 使用ajax同步隐形recaptcha