在Google Maps中自定义Marker报错:提供的图片必须为Bitmap
Google Maps自定义Marker解码失败问题解决
问题场景
在Google Maps中设置自定义Marker时触发报错,报错信息:
com.google.maps.api.android.lib6.common.apiexception.b: Failed to decode image. The provided image must be a Bitmap.
核心代码片段:
val markerOptions = MarkerOptions().position(map.cameraPosition.target) .icon(BitmapDescriptorFactory.fromResource(R.mipmap.pin)) map.addMarker(markerOptions)
解决方法
- 检查图片格式:确保
pin图片为PNG、JPG这类标准Bitmap格式,避免使用WebP等可能不兼容的格式。 - 手动转换为Bitmap后生成Descriptor:如果资源无法直接被识别,先将资源转为Bitmap再创建Marker图标,代码示例:
val bitmap = BitmapFactory.decodeResource(resources, R.mipmap.pin) val markerOptions = MarkerOptions().position(map.cameraPosition.target) .icon(BitmapDescriptorFactory.fromBitmap(bitmap)) map.addMarker(markerOptions)
- 验证资源完整性:确认
mipmap目录下的pin图片未损坏,必要时重新替换图片文件。 - 清理重建项目:执行Clean Project和Rebuild Project操作,清除缓存可能带来的资源加载异常。
内容的提问来源于stack exchange,提问作者Captai-N
相关产品推荐
相关产品推荐

