Android Studio构建Flutter安卓应用时华为HMS依赖报错
旧版Flutter安卓构建HMS依赖证书问题的规避方案
问题说明
构建时触发以下错误:
- 核心失败任务:
:app:checkEssDebugAarMetadata
无法解析
:app:essDebugRuntimeClasspath的所有依赖项。
无法确定com.huawei.hms:dynamicability:1.0.18.300的构件无法获取资源
https://developer.huawei.com/repo/com/huawei/hms/dynamicability/1.0.18.300/dynamicability-1.0.18.300.aar。
无法HEAD该资源,原因:<developer.huawei.com>的证书与任何主题备用名称都不匹配:[a248.e.akamai.net, *.akamaized.net, *.akamaized-staging.net, *.akamaihd.net, *.akamaihd-staging.net]
规避方案
1. 替换华为仓库地址
在安卓模块的build.gradle(项目级或模块级)中,将华为仓库地址替换为更稳定的镜像地址:
repositories { // 替换原华为仓库 maven { url 'https://repo.huaweicloud.com/repository/maven/' } // 保留其他原有仓库 google() mavenCentral() }
2. 排除冲突的Dynamicability依赖
如果项目未直接使用该模块,可全局或针对性排除依赖:
- 全局排除(在模块级
build.gradle的dependencies块上方添加):
configurations.all { exclude group: 'com.huawei.hms', module: 'dynamicability' }
- 针对性排除(针对引入该依赖的具体包):
implementation 'com.huawei.hms:目标依赖包' { exclude group: 'com.huawei.hms', module: 'dynamicability' }
3. 手动引入本地AAR包
- 从华为官方Maven仓库(使用正常证书的地址)手动下载
dynamicability-1.0.18.300.aar文件 - 在安卓模块根目录创建
libs文件夹,将AAR放入其中 - 在模块级
build.gradle中配置本地依赖:
repositories { flatDir { dirs 'libs' } } dependencies { implementation(name: 'dynamicability-1.0.18.300', ext: 'aar') }
4. 临时禁用证书校验(仅测试环境)
注意:此方法有安全风险,仅限本地测试使用
在项目级build.gradle中添加配置,跳过华为仓库的证书校验:
allprojects { repositories { maven { url 'https://developer.huawei.com/repo/' allowInsecureProtocol = true } } }
内容的提问来源于stack exchange,提问作者Chris Andree
相关产品推荐
相关产品推荐

