Android项目命令行执行./gradlew assembleDebug报错:找不到com.android.support:support-v4:22.1.1如何解决?
这个问题我之前帮同事排查过好几次,大概率是新系统环境下Gradle的仓库配置或者依赖缓存出了问题,给你几个一步步排查的方案:
1. 先检查根目录的仓库配置
旧版本的Android Support库需要从Google或JCenter仓库拉取,新系统里可能默认的仓库配置不全。打开项目根目录下的build.gradle,找到allprojects块里的repositories,确保包含以下仓库声明:
allprojects { repositories { google() // 新版Gradle用这个,对应Google Maven仓库 jcenter() // 旧版Support库依赖这个,虽然JCenter已停止更新,但老版本依赖还能访问 mavenCentral() } }
如果你的Gradle版本比较老(比如低于4.0),google()可能不生效,换成maven { url 'https://maven.google.com' }试试。
2. 确认Module级别的依赖声明无误
打开app模块(或你要构建的目标模块)下的build.gradle,检查依赖部分有没有拼写错误:
dependencies { implementation 'com.android.support:support-v4:22.1.1' }
注意版本号、包名的大小写都不能错,之前遇到过有人把support-v4写成supportV4导致报错的情况。
3. 清理Gradle缓存并强制刷新依赖
新系统里本地Gradle缓存是空的,或者迁移过程中缓存损坏,执行下面的命令彻底清理并重新下载依赖:
./gradlew clean build --refresh-dependencies
这个命令会删掉旧的构建产物和缓存,强制Gradle从远程仓库重新拉取所有依赖。
4. 检查Gradle与Android插件的版本兼容性
不同版本的Gradle和Android Gradle Plugin对依赖库的支持有差异,22.1.1版本的Support库对应的Android Plugin版本大概在1.1.0~1.5.0之间,Gradle版本建议用2.10左右。你可以查看根目录gradle/wrapper/gradle-wrapper.properties里的Gradle版本:
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
如果你的Gradle版本太高(比如5.0+),可能会出现兼容问题,这时候可以暂时降低Gradle版本到2.10,或者尝试升级Android Plugin版本(但升级插件可能需要调整其他依赖)。
5. 备选:手动添加依赖到本地仓库
如果上面的方法都不行,你可以手动下载com.android.support:support-v4:22.1.1的AAR包,放到本地Maven仓库对应的目录(比如~/.m2/repository/com/android/support/support-v4/22.1.1/),然后重新执行构建命令。
先从第1、3步开始试,这两个是最常见的解决办法,一般都能搞定。
内容的提问来源于stack exchange,提问作者ra_pri

