Fedora系统运行Flutter时Gradle无法解析:classpath配置依赖
解决Fedora下Flutter项目Gradle构建依赖下载失败问题
1. 排查网络连通性问题
报错里的*repo.maven.apache.org: Name or service not known*是核心问题,先确认网络解析和连通:
- 终端执行
ping repo.maven.apache.org,如果提示无法解析,说明DNS配置有问题:- 临时修改DNS:编辑
/etc/resolv.conf,添加nameserver 8.8.8.8,保存后重新测试。 - 检查系统代理:执行
echo $http_proxy $https_proxy,如果有未正确配置的代理,执行unset http_proxy; unset https_proxy清空后重试。
- 临时修改DNS:编辑
- 如果ping通但下载失败,检查是否有防火墙拦截HTTPS请求。
2. 替换无效的Gradle仓库配置
jcenter已停止服务,添加它无法解决问题,换成维护中的仓库并清理无效配置:
打开项目根目录下的android/build.gradle,修改如下:
buildscript { repositories { google() mavenCentral() // 可选添加阿里云镜像加速国内访问 maven { url 'https://maven.aliyun.com/repository/public' } } dependencies { // 使用与Flutter兼容的Android Gradle Plugin版本,示例为7.4.2 classpath "com.android.tools.build:gradle:7.4.2" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.0" } } allprojects { repositories { google() mavenCentral() maven { url 'https://maven.aliyun.com/repository/public' } } }
3. 清理缓存重新构建
- 清理Flutter项目缓存:
flutter clean - 删除本地Gradle缓存:
rm -rf ~/.gradle/caches - 重新拉取依赖并运行:
flutter pub get && flutter run
4. 检查SELinux和防火墙限制
Fedora默认开启的SELinux或防火墙可能拦截Gradle的网络请求:
- 临时关闭SELinux测试:
sudo setenforce 0,如果构建成功,再配置SELinux规则允许Gradle的网络请求(不建议长期关闭)。 - 临时关闭防火墙测试:
sudo systemctl stop firewalld,确认问题后再配置防火墙允许HTTPS出站请求。
5. 确认Gradle版本兼容性
打开android/gradle/wrapper/gradle-wrapper.properties,确保Gradle版本和Android Gradle Plugin匹配,示例配置:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
(该版本与AGP 7.4.2兼容)
内容的提问来源于stack exchange,提问作者Samier Uddin Ahammad Shovo
相关产品推荐
相关产品推荐

