问题现象
使用Map Kit地图服务时,地图不显示,部分场景为仅显示地图logo和控件。
背景知识
- Map Kit简介:为开发者提供强大而便捷的地图能力,助力全球开发者实现个性化显示地图、位置搜索和路径规划等功能,轻松完成地图构建工作。可以轻松地在HarmonyOS应用/元服务中集成地图相关的功能,全方位提升用户体验。
- 显示地图:介绍如何使用地图组件MapComponent和MapComponentController呈现地图。
- ArkTS API错误码:介绍地图服务相关错误码。
问题定位
- 检查是否是使用了自动签名。
- 检查应用是否未开通地图服务。
- 检查是否为先手动签名,后开通地图服务。
- 检查项目module.json5文件中配置的client_id与HarmonyOS 开发者中心网站应用的Client ID(应用->OAuth 2.0客户端ID->Client ID)是否一致,检查是否配置公钥指纹。(仅HarmonyOS 5.0.2(14)及以前版本需检查)
- 检查设备网络是否正常。
分析结论
- DevEco Studio默认使用的自动签名,不支持地图服务,需开通地图服务。
- 项目虽然使用了手动签名,但应用未开通地图服务。
- 项目先使用了未开通地图服务的证书和profile进行手动签名,开通地图服务后,未重新生成证书和profile文件,重新手动签名。
- 如果是HarmonyOS 5.0.2(14)及以前版本,可能存在未正确配置module.json5文件中client_id和公钥指纹情况。
- 设备无网络或者网络异常,导致地图初始化超时。
修改建议
- 在HarmonyOS 开发者中心网站开通地图服务,生成证书和profile文件,进行手动签名。从DevEco Studio 6.0.0 Beta5版本开始,支持在DevEco Studio中开通地图服务,开通后可以使用自动签名调试地图,参见开通地图服务中的方式二。
- 如果项目前期使用手动签名但未开通地图服务,需在HarmonyOS 开发者中心网站开通地图服务后重新生成证书和profile文件,重新进行手动签名。
- 如果是HarmonyOS 5.0.2(14)及以前版本,需正确配置module.json5文件中client_id(参见配置Client ID)和配置公钥指纹。开通地图服务后,需等待24小时后生效(HarmonyOS 5.0.2(14)及以前版本)。
- 保证设备有网络并且网络稳定。