Gradle构建报错:无法解析com.android.support:appcompat-v7:26.1.0(网络不可达)
大概率是代理配置的锅——虽然Android Studio本身的代理检测显示成功,但Gradle可能没正确继承或使用这些代理设置,导致无法访问Maven仓库下载依赖。以下是一步步的排查和解决方法:
检查Gradle的代理配置
Gradle有独立的代理设置,可能和AS的设置不同步。你需要检查两个关键位置:- 全局
gradle.properties:在你的用户目录(Windows为C:\Users\你的用户名\.gradle,Mac为~/Users/你的用户名/.gradle)找到该文件,添加或修改代理配置,确保和AS里的代理参数一致:systemProp.http.proxyHost=你的代理服务器地址 systemProp.http.proxyPort=代理端口号 systemProp.https.proxyHost=你的代理服务器地址 systemProp.https.proxyPort=代理端口号 # 若代理需要账号密码,补充以下内容 systemProp.http.proxyUser=你的代理用户名 systemProp.http.proxyPassword=你的代理密码 systemProp.https.proxyUser=你的代理用户名 systemProp.https.proxyPassword=你的代理密码 - 项目级
gradle.properties:打开项目根目录下的这个文件,确保里面的代理配置和全局一致,或者直接移除项目级代理设置,让它继承全局配置。
- 全局
确保AS代理同步到Gradle
打开AS的File > Settings > Appearance & Behavior > System Settings > HTTP Proxy,确认代理配置正确。重点要勾选**"Apply settings to Gradle run configurations"**选项——它会把AS的代理设置自动同步给Gradle,很多人就是漏了这一步导致的问题。确认仓库地址正确
打开项目根目录的build.gradle(Project级),确保repositories块里包含google()和mavenCentral(),因为appcompat-v7:26.1.0托管在这些仓库中:repositories { google() mavenCentral() }如果项目里用的是
jcenter(),建议替换掉,因为jcenter已停止维护,很多旧依赖可能无法访问。清除缓存并重新同步
缓存异常也可能导致依赖解析失败,试试这两步:- 点击AS右上角的「Sync Project with Gradle Files」按钮,重新同步项目。
- 若无效,执行
File > Invalidate Caches... > Invalidate and Restart,让AS清除缓存并重启,之后再重新构建。
你也可以手动删除用户目录下的.gradle/caches文件夹,然后重启AS。
验证代理能否访问目标依赖地址
虽然AS的代理检测显示成功,但可以手动验证:用浏览器或curl命令访问https://dl.google.com/dl/android/maven2/com/android/support/appcompat-v7/26.1.0/appcompat-v7-26.1.0.pom,看是否能正常打开或下载。如果不行,说明代理没有权限访问这个域名,需要联系管理员把dl.google.com和maven.google.com加入代理白名单。检查Gradle插件版本兼容性
appcompat-v7:26.1.0需要至少3.0.0版本的Android Gradle Plugin。打开项目根目录的build.gradle(Project级),检查dependencies块里的classpath:dependencies { classpath 'com.android.tools.build:gradle:3.0.1' // 版本不低于3.0.0即可 }
如果以上步骤都试过还是不行,可能是防火墙或代理服务器的其他限制,建议联系公司IT管理员排查网络规则。
内容的提问来源于stack exchange,提问作者JohnCalms

