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

Android Studio同步失败:play-services-flags依赖无法解析求助

解决Android Studio同步时无法解析play-services-flags.aar的问题

从你的描述来看,虽然目标文件在JCenter上实际可访问,但Gradle同步时就是拉取不到,且昨日一切正常,这种情况大概率是Gradle依赖解析缓存异常或仓库优先级/网络访问问题导致的,给你几个针对性的解决方案:

1. 调整仓库优先级,优先从Google仓库拉取服务类依赖

Google官方的服务类依赖(比如play-services系列)从google()仓库获取会更稳定,很多时候JCenter的节点同步会存在延迟或异常。你可以修改项目根目录的build.gradle,把google()仓库放在所有仓库的最前面:

buildscript {
    repositories {
        google() // 移至最顶部
        jcenter()
        // 其他仓库配置
    }
    dependencies {
        // 你的classpath依赖配置
    }
}

allprojects {
    repositories {
        google() // 同样移至最顶部
        jcenter()
        // 其他仓库配置
    }
}

修改后点击「Sync Now」重新同步,Google仓库内肯定包含该依赖包,优先从这里拉取就能绕过JCenter的访问问题。

2. 清理Gradle本地缓存,强制重新拉取依赖

Gradle会缓存已下载的依赖文件,如果缓存文件损坏或记录了错误的资源地址,就会导致拉取失败。你可以通过两种方式清理:

  • 借助Android Studio自带功能:点击顶部菜单 File → Invalidate Caches...,勾选「Invalidate and Restart」,等待AS重启后重新同步项目。
  • 手动删除本地缓存目录:
    • Windows系统:C:\Users\<你的用户名>\.gradle\caches
    • Mac/Linux系统:~/.gradle/caches
      删除该目录后重启AS,Gradle会重新从仓库拉取所有依赖资源。

3. 检查网络代理与JCenter访问状态

有时候浏览器能正常下载,但Gradle的请求会因代理配置异常(比如代理未正确生效、SSL证书校验问题)或网络运营商节点缓存,导致无法访问JCenter的对应资源。你可以:

  • 检查AS代理设置:File → Settings → Appearance & Behavior → System Settings → HTTP Proxy,确保代理配置正确,或暂时关闭代理尝试同步。
  • 切换网络环境(比如从公司内网换成个人热点),排除网络层面的访问限制。

4. 排查传递依赖的版本冲突

如果以上方法都无效,你可以用Gradle的依赖报告定位是哪个第三方依赖引入了旧版本的play-services-flags:
在AS的Terminal中运行:

# Mac/Linux系统
./gradlew app:dependencies

# Windows系统
gradlew app:dependencies

找到compileClasspath下的play-services-flags:15.0.1,查看它的依赖来源,然后在对应的第三方依赖中排除这个旧版本,让Gradle自动选择兼容的版本(无需手动添加该库,你已尝试过此方法)。示例如下:

dependencies {
    implementation('com.example:third-party-lib:x.x.x') {
        exclude group: 'com.google.android.gms', module: 'play-services-flags'
    }
}

这些方法应该能解决你的问题——毕竟目标文件本身存在,只是Gradle的解析逻辑或缓存出了异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:17:54