Flutter项目中华为地图无法渲染:白屏带标记+REQUEST_DENIED错误
Flutter集成华为地图白屏+REQUEST_DENIED错误排查与解决
问题描述
在Flutter项目中集成Huawei Map后,打开地图仅显示带标记的白屏,日志输出以下错误:
E/HmsMapKit_ErrorTraceLogPusher_8(12678): cache error trace log : ErrorTraceLogDTO{ scenario = ACCESS_SERVICE_ERROR', message='6 : REQUEST_DENIED'} E/HmsMapKit_ErrorTraceLogPusher_8(12678): com.huawei.hms.maps.foundation.client.ClientAccessException: * * *E*U*S*_*E*I*D E/HmsMapKit_ErrorTraceLogPusher_8(12678): at com.huawei.hms.maps.foundation.client.ClientAccessException$Builder.build(Unknown Source:25) E/HmsMapKit_ErrorTraceLogPusher_8(12678): at com.huawei.hms.maps.foundation.client.mab.a(Unknown Source:20) E/HmsMapKit_ErrorTraceLogPusher_8(12678): at com.huawei.hms.maps.foundation.client.mab.d(Unknown Source:86) E/HmsMapKit_ErrorTraceLogPusher_8(12678): at com.huawei.hms.maps.foundation.client.mab.a(Unknown Source:111) E/HmsMapKit_ErrorTraceLogPusher_8(12678): at com.huawei.hms.maps.foundation.client.mab.a(Unknown Source:1) E/HmsMapKit_ErrorTraceLogPusher_8(12678): at com.huawei.hms.maps.provider.client.dataversion.maa.n(Unknown Source:2) E/HmsMapKit_ErrorTraceLogPusher_8(12678): at com.huawei.hms.maps.provider.client.dataversion.maa.lambda$jcQ1fGjHHpJyaDde0F9VW2PoUFA(Unknown Source:0) E/HmsMapKit_ErrorTraceLogPusher_8(12678): at com.huawei.hms.maps.provider.client.dataversion.-$$Lambda$maa$jcQ1fGjHHpJyaDde0F9VW2PoUFA.call(Unknown Source:4) E/HmsMapKit_ErrorTraceLogPusher_8(12678): at com.huawei.hms.maps.foundation.client.mab$maa.a(Unknown Source:3) E/HmsMapKit_ErrorTraceLogPusher_8(12678): at com.huawei.hms.maps.provider.client.dataversion.maa.e(Unknown Source:28) E/HmsMapKit_ErrorTraceLogPusher_8(12678): at com.huawei.hms.maps.provider.client.dataversion.maa.d(Unknown Source:4) E/HmsMapKit_ErrorTraceLogPusher_8(12678): at com.huawei.hms.maps.provider.cache.mae$maa.a(Unknown Source:0) E/HmsMapKit_ErrorTraceLogPusher_8(12678): at com.huawei.hms.maps.provider.cache.mae$maa.call(Unknown Source:0) E/HmsMapKit_ErrorTraceLogPusher_8(12678): at mvb.b(Unknown Source:17) E/HmsMapKit_ErrorTraceLogPusher_8(12678): at mtm.a(Unknown Source:14) E/HmsMapKit_ErrorTraceLogPusher_8(12678): at mvg$mab.run(Unknown Source:6) E/HmsMapKit_ErrorTraceLogPusher_8(12678): at mtp$maa.run(Unknown Source:9) E/HmsMapKit_ErrorTraceLogPusher_8(12678): at mvu.run(Unknown Source:13) E/HmsMapKit_ErrorTraceLogPusher_8(12678): at mvu.call(Unknown Source:0) E/HmsMapKit_ErrorTraceLogPusher_8(12678): at java.util.concurrent.FutureTask.run(FutureTask.java:266) E/HmsMapKit_ErrorTraceLogPusher_8(12678): at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301) E/HmsMapKit_ErrorTraceLogPusher_8(12678): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) E/HmsMapKit_ErrorTraceLogPusher_8(12678): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) E/HmsMapKit_ErrorTraceLogPusher_8(12678): at java.lang.Thread.run(Thread.java:929)
当前地图初始化代码:
HuaweiMapInitializer.initializeMap(); HuaweiMapInitializer.setApiKey(apiKey: 'api_key');
依赖版本:
Huawei map: 6.5.0+301 com.huawei.agconnect:agcp:1.7.2.300 com.huawei.agconnect:agconnect-core:1.7.3.300
原因分析
错误码6 : REQUEST_DENIED属于鉴权失败类问题,核心原因包括:
- API Key配置错误或未激活对应服务
- 地图初始化顺序颠倒
- 应用签名信息与华为开发者后台配置不匹配
- AGConnect依赖版本不兼容
解决方法
1. 修正初始化顺序
华为地图要求先设置API Key,再初始化地图,原代码顺序错误,调整为:
HuaweiMapInitializer.setApiKey(apiKey: '你的有效API Key'); HuaweiMapInitializer.initializeMap();
2. 验证API Key有效性
- 确认API Key是从华为开发者后台对应应用中获取,且已启用地图服务
- 检查API Key字符串是否完全复制,无多余空格或特殊字符
3. 匹配应用签名信息
- 确保应用的SHA-256签名值已正确配置到华为开发者后台的应用信息中
- 区分debug和release环境的签名,对应后台配置的签名信息需一致
4. 统一AGConnect依赖版本
当前agcp与agconnect-core版本不一致,容易引发兼容性问题,统一为相同版本:
com.huawei.agconnect:agcp:1.7.3.300 com.huawei.agconnect:agconnect-core:1.7.3.300
内容的提问来源于stack exchange,提问作者Dawid Długosz
相关产品推荐
相关产品推荐

