Flutter升级适配包后即便降级仍出现Gradle下载403报错求助
Flutter构建阶段Gradle 403错误解决方案
错误本质定位
根据报错栈分析,故障核心是Gradle Wrapper向官方源发起gradle-5.1.1-all.zip下载请求时,被目标服务器返回403权限拒绝,并非Flutter版本不兼容导致的代码层面构建错误。
已验证的问题表现:
- 故障触发节点:为适配第三方包升级Flutter版本后首次出现报错,即便降级回之前正常使用的Flutter稳定版,报错仍持续存在
- 已尝试无效操作:
- 将
gradle-wrapper.properties中的http下载链接替换为https版本 - 多次切换不同版本的Flutter与Gradle组合尝试构建
- 将
分步修复操作
1. 替换Gradle官方下载源为可用镜像
之前尝试http转https无效,本质是官方Gradle源在部分网络环境下存在访问拦截,并非协议本身的问题。修改android/gradle/wrapper/gradle-wrapper.properties配置文件,将原有的官方下载链接替换为同步更新的镜像地址:
原配置内容:
distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=http\://services.gradle.org/distributions/gradle-5.1.1-all.zip
替换distributionUrl字段内容为镜像地址:
distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-5.1.1-all.zip
2. 清理已停服的Maven仓库配置
当前项目的android/build.gradle配置中存在两个已永久停服的仓库地址,访问时必然触发403错误:
jcenter():原JCenter公共仓库已于2022年停止所有服务https://dl.bintray.com/alphacep/vosk:原Bintray代码托管平台已全面关闭,链接完全失效
调整后的完整build.gradle配置如下:
buildscript { ext.kotlin_version = '1.3.50' repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/public' } google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:3.5.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } allprojects { repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/public' } google() mavenCentral() } } rootProject.buildDir = '../build' subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" } subprojects { project.evaluationDependsOn(':app') }
3. 清除本地残留的无效构建缓存
多次下载失败会在本地Gradle用户目录残留不完整的损坏文件,导致重试时依然读取无效缓存触发报错,执行以下命令清理:
- 删除对应版本Gradle的本地缓存:
rm -rf ~/.gradle/wrapper/dists/gradle-5.1.1-all - 清理项目端构建缓存:进入项目根目录执行
flutter clean
4. 补全Android SDK许可配置
从flutter doctor的输出结果可见,当前Android SDK的许可状态异常,会在构建阶段拦截流程,执行以下操作:
- 终端运行
flutter doctor --android-licenses,对所有弹出的许可提示输入y完成确认接受
验证方式
完成以上配置调整后,在项目根目录执行flutter run启动构建,Gradle会从可用镜像源顺利下载对应版本,不再触发403报错。
内容的提问来源于stack exchange,提问作者fares ernez
相关产品推荐
相关产品推荐

