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

编译Android示例项目遇Gradle依赖问题:找不到com.android.support:appcompat-v7:27.+

解决Gradle无法找到com.android.support:appcompat-v7:27.+的问题

从你给出的报错信息来看,核心问题是Gradle没有正确访问Google Maven仓库,只在本地仓库和项目内的sdk-manager目录里搜索依赖,导致找不到27.x版本的appcompat-v7。下面是针对性的解决方案:

1. 修正仓库配置的位置与顺序

首先要确保google()(或完整的Google Maven仓库地址)配置在项目根目录的build.gradle中,并且放在本地仓库之前——Gradle会按配置顺序搜索仓库,前面的仓库找不到依赖时才会去后面的仓库查找。

修改根目录的build.gradle文件如下:

buildscript {
    repositories {
        // 优先搜索Google仓库
        google()
        // 兼容旧版Gradle的写法:maven { url 'https://maven.google.com' }
        jcenter()
    }
    dependencies {
        // 注意:Gradle 4.4.1对应的Android Gradle Plugin版本是3.1.x,这里以3.1.4为例
        classpath 'com.android.tools.build:gradle:3.1.4'
    }
}

allprojects {
    repositories {
        google()
        // 同上,兼容写法:maven { url 'https://maven.google.com' }
        jcenter()
        // 本地仓库放在最后,让Gradle先尝试远程仓库
        maven { url 'file://D:/android-sdk/extras/android/m2repository' }
        // 如果项目内的sdk-manager不是必须依赖源,可以考虑注释掉
        // maven { url 'file:/C:/Users/xxx/IdeaProjects/MyApplication/sdk-manager' }
    }
}

2. 无需完全禁用本地仓库(调整顺序即可)

你不需要彻底禁用本地仓库,只要把远程仓库(Google、jcenter)放在配置顺序的前面,Gradle就会优先从远程拉取最新的依赖包。如果确实想禁用本地仓库,直接删除根build.gradle中对应的maven { url 'file://...' }配置即可,但不建议这么做——本地仓库可能存储着一些自定义或离线依赖。

3. 强制Gradle刷新依赖缓存

执行以下命令清理旧缓存并重新同步项目,确保Gradle重新拉取依赖:

# Windows系统执行
gradlew clean build --refresh-dependencies

# macOS/Linux系统执行
./gradlew clean build --refresh-dependencies

为什么之前添加google()无效?

从你的报错日志能看出,Gradle只搜索了本地仓库和项目内的sdk-manager,说明:

  • 你可能把google()配置在了模块级的build.gradle中(而非根目录),导致全局依赖搜索不生效;
  • 仓库顺序配置错误,本地仓库排在了Google仓库前面,Gradle搜完本地没找到依赖就直接报错了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:36:30