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

Android Studio构建拉取Maven依赖报403 Forbidden错误如何解决

问题原因

返回403禁止访问的核心原因是私有Maven仓库的认证流程完全没有生效,具体由3个配置错误共同导致:

  • Artifact Registry Gradle插件配置位置错误:将插件声明放在模块级build.gradle的plugins块中,但根buildscript的依赖中没有引入该插件的classpath,插件无法正常初始化,Gradle会直接发起普通无认证的HTTP请求拉取依赖,自然被私有仓库拒绝。
  • 仓库配置位置错误:仅在模块级build.gradle中配置了Artifact Registry仓库地址,没有加入全局仓库配置,依赖解析时无法匹配到插件提供的认证逻辑。
  • 本地缺少对应仓库的访问凭证:就算插件正常加载,没有配置有权限的账号认证信息,依然会被仓库拦截返回403。
修复步骤

按以下顺序调整配置即可解决问题:

  1. 配置本地访问凭证
    先安装Google Cloud CLI,执行以下命令登录拥有gmp-artifacts/transportation仓库读取权限的Google账号:
    gcloud auth application-default login
    
    如果是CI/CD环境,配置环境变量GOOGLE_APPLICATION_CREDENTIALS指向有权限的服务账号JSON密钥文件路径即可。执行完登录后可以跑gcloud components update更新组件,避免高版本JDK下的认证兼容问题。
  2. 修正根目录build.gradle配置
    在buildscript依赖中加入Artifact Registry插件的classpath,同时把私有仓库地址加入全局allprojects的仓库列表,修正后的完整配置如下:
    buildscript {
        ext.kotlinVersion = "1.6.21"
        repositories {
            google()
            mavenCentral()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:7.0.4'
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
            classpath "com.google.android.libraries.mapsplatform.secrets-gradle-plugin:secrets-gradle-plugin:2.0.1"
            // 新增Artifact Registry插件依赖
            classpath "com.google.cloud.artifactregistry:artifactregistry-gradle-plugin:2.1.5"
        }
    }
    
    allprojects {
        repositories {
            google()
            mavenCentral()
            // 新增私有Artifact Registry仓库配置
            maven {
                url "artifactregistry://us-west2-maven.pkg.dev/gmp-artifacts/transportation"
            }
        }
    }
    
  3. 修正模块级build.gradle配置
    删除plugins块中错误声明的Artifact Registry插件,避免版本冲突,直接通过apply方式加载插件即可,同时删除模块内重复配置的repositories块(全局已经配置过,不需要重复写),修正后的配置片段如下:
    plugins {
        id 'com.android.application'
        id 'kotlin-android'
    }
    
    apply plugin: 'kotlin-android-extensions'
    apply plugin: 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
    apply plugin: 'com.google.cloud.artifactregistry.gradle-plugin'
    
    // 原有android配置块、dependencies依赖块内容保持不变即可
    
  4. 权限校验
    注意:如果调整完配置依然返回403,优先检查账号是否被授予了目标仓库的Artifact Registry Reader权限,插件本身不会做权限校验,所有权限校验逻辑在Artifact Registry服务端执行,无仓库权限的情况下即使认证成功也会返回403。

内容的提问来源于stack exchange,提问作者Zeff

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 13:01:20