升级Android Studio至3.1.2后构建应用出现Failed to resolve: support-v4错误
刚升级完AS遇到这种没指定版本的依赖报错确实头疼,我来给你几个针对性的解决方案,应该能快速搞定:
显式指定support-v4依赖版本
你的项目compileSdkVersion是27,对应稳定版的support库版本是27.1.1。直接在应用级build.gradle的dependencies块里添加显式依赖:implementation 'com.android.support:support-v4:27.1.1'注意AS 3.0+推荐用
implementation替代旧的compile关键字,依赖隔离性更好。调整仓库优先级
打开项目根目录的build.gradle,确保google()仓库放在jcenter()前面,因为Android官方依赖现在优先从Google仓库分发:allprojects { repositories { google() jcenter() } }旧版本AS可能没配置
google(),升级后必须加上,否则容易出现依赖找不到的问题。清理缓存并重启AS
点击顶部菜单栏的File -> Invalidate Caches / Restart,选择Invalidate and Restart。升级后旧的依赖缓存可能和新插件逻辑冲突,清理后重新同步就能解决很多奇怪的解析问题。排查隐式依赖
如果上面的方法没用,可能是某个第三方库隐式引入了无版本的support-v4。在终端执行命令查看完整依赖树:# Mac/Linux ./gradlew app:dependencies # Windows gradlew.bat app:dependencies找到依赖树里标注
support-v4但没有版本的条目,然后用exclude语法排除该隐式依赖,或者统一指定所有support库的版本(可以在build.gradle的configurations块里设置强制版本):configurations.all { resolutionStrategy.force 'com.android.support:support-v4:27.1.1' }
为什么升级后会出现这个问题?
AS 3.1.2对应的Gradle插件3.1.2对依赖解析的严格性做了提升,旧版本插件可能会自动推断默认版本或者忽略无版本的依赖声明,但新版本会直接抛出错误,要求显式指定版本,避免依赖版本冲突的潜在问题。
内容的提问来源于stack exchange,提问作者Peyman

