添加com.huawei.hms:hianalytics后遇ResourceException,如何修复?
问题描述
引入华为SDK后项目构建出现异常:
- 最初添加
com.huawei.agconnect插件时,不得不禁用org.gradle.unsafe.configuration-cache - 新增依赖
implementation("com.huawei.hms:hianalytics:6.10.0.302")后,构建失败,Gradle错误尝试从华为仓库拉取第三方库(如com.github.davidmigloz:youtube-android-player-api-gradle:1.2.2.1),报错信息:
Caused by: org.gradle.api.resources.ResourceException: Could not get resource 'https://developer.huawei.com/repo/com/github/davidmigloz/youtube-android-player-api-gradle/1.2.2.1/youtube-android-player-api-gradle-1.2.2.1.pom'.
项目使用Kotlin DSL(Project:Kts),根目录build.gradle.kts当前配置:
buildscript { repositories { google() mavenCentral() maven { url = uri("https://developer.huawei.com/repo/") } } dependencies { classpath("com.android.tools.build:gradle:8.0.2") classpath("com.google.firebase:firebase-crashlytics-gradle:2.9.6") classpath("com.google.firebase:perf-plugin:1.4.2") classpath("com.google.gms:google-services:4.3.15") classpath("com.huawei.agconnect:agcp:1.9.0.300") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.0") } } allprojects { repositories { google() mavenCentral() maven { url = uri("https://developer.huawei.com/repo/") } } }
解决方案
方案1:调整仓库查找顺序
Gradle按仓库声明顺序查找依赖,将华为仓库移至最后,确保优先从google、mavenCentral拉取第三方库:
allprojects { repositories { google() mavenCentral() // 移至最后 maven { url = uri("https://developer.huawei.com/repo/") } } }
方案2:使用仓库内容过滤(精准推荐)
通过Gradle仓库内容过滤,仅让华为官方依赖从华为仓库拉取,避免干扰第三方库:
allprojects { repositories { google() mavenCentral() maven { url = uri("https://developer.huawei.com/repo/") content { // 仅匹配华为相关依赖的groupId前缀 includeGroupByRegex("com\\.huawei.*") includeGroupByRegex("com\\.huaweiagconnect.*") } } } }
方案3:修复配置缓存兼容性
若需重新启用配置缓存,尝试升级AGCP插件至最新稳定版,新版本通常修复了Gradle配置缓存兼容问题:
buildscript { dependencies { // 替换为最新AGCP版本 classpath("com.huawei.agconnect:agcp:1.10.0.300") } }
内容的提问来源于stack exchange,提问作者Michalsx
相关产品推荐
相关产品推荐

