You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub Packages发布Android Kotlin库后依赖解析失败问题咨询

问题原因

依赖解析失败核心是三个配置错误:

  • Maven坐标完全不匹配:发布时配置的组件坐标为groupId = com.bruno.components、artifactId = bruno-components、version = 1.0.0,完整依赖坐标应该是com.bruno.components:bruno-components:1.0.0,消费端写的两个依赖坐标既不匹配groupId也不匹配artifactId,无法定位到对应包。
  • 发布配置有缺陷:直接上传编译产出的debug aar文件,没有生成对应的pom描述文件,就算坐标写对,拉取后也会丢失组件本身的依赖链,出现运行时类找不到的问题。
  • 仓库配置位置错误:GitHub Packages的Maven仓库地址如果只配置在app模块的repositories块里,Gradle不会全局到该仓库检索依赖,必须配置到项目级的仓库列表中。
修复方案

第一步:修正发布端配置,重新发包

修改组件模块的build.gradle发布配置,不要直接指定本地aar路径,改用Gradle组件自动发布逻辑,自动生成pom文件:

def getVersionName = { ->
    return "1.0.1" // 建议升级版本号,避免和之前上传的错误包缓存冲突
}

def getArtifactId = { ->
    return "bruno-components"
}

afterEvaluate {
    publishing {
        publications {
            bar(MavenPublication) {
                groupId 'com.bruno.components'
                artifactId getArtifactId()
                version getVersionName()
                // 正式发布用release变体,自动生成包含传递依赖的pom文件
                from components.release
                // 若必须发布debug变体,需手动补全pom中的依赖声明,否则会丢失依赖
            }
        }

        repositories {
            maven {
                name = "GitHubPackages"
                url = uri("https://maven.pkg.github.com/bruno/bruno-components-android")
                credentials {
                    username = githubProperties['gpr.usr']
                    password = githubProperties['gpr.key']
                }
            }
        }
    }
}

修改完成后执行发布任务,将新包上传到GitHub Packages。

第二步:修正消费端仓库配置

如果是Arctic Fox及以后版本的Android Studio,把GitHub Packages仓库配置到项目根目录settings.gradle的dependencyResolutionManagement.repositories块下:

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        maven {
            name = "GitHubPackages"
            url = uri("https://maven.pkg.github.com/bruno/bruno-components-android")
            credentials {
                username = githubProperties['gpr.usr']
                password = githubProperties['gpr.key']
            }
        }
    }
}

如果是旧版Android Studio,就把这段仓库配置写到项目根目录build.gradle的allprojects.repositories块里,删除之前在app模块下配置的仓库。

第三步:修正依赖声明

打开app模块的build.gradle,删除之前写的两个错误依赖,换成正确的坐标:

dependencies {
    // 对应重新发布的版本号
    implementation 'com.bruno.components:bruno-components:1.0.1'
}
补充说明

当前配置的PAT权限符合要求,只要确认github.properties里填写的用户名是GitHub账号ID,密钥是生成的具备read:packages权限的令牌即可。如果同步时出现401/403错误,再检查令牌是否过期、是否有对应仓库的访问权限。
如果同步仍然失败,可以执行./gradlew :app:dependencies --configuration debugRuntimeClasspath查看依赖检索的详细日志,定位具体是仓库匹配、认证还是坐标错误的问题。


内容的提问来源于stack exchange,提问作者Bruno Sosa Fast Tag

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 20:36:24