Android Studio 3.1.2新建项目Gradle同步失败求助
我来帮你搞定这个Gradle同步的坑!从你描述的情况来看,核心问题是Gradle无法正确从Google的Maven仓库拉取依赖——虽然你已经添加了仓库配置,甚至能直接下载对应的aar文件,但Gradle的同步逻辑可能卡在了几个细节上。下面是一步步的解决方案:
1. 调整仓库配置的优先级和正确性
你的项目级build.gradle里已经加了google()和maven { url "https://maven.google.com" },但注意google()其实就是官方maven仓库的简写,建议把它放在所有仓库的最前面,确保Gradle优先从这里拉取依赖(毕竟你用的是android-P和28.0.0-alpha1的依赖,这些只有Google仓库才有)。修改后的项目级build.gradle仓库部分应该是这样:
buildscript { ext.kotlin_version = '1.2.41' repositories { google() // 放在最前面 jcenter() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:3.1.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } allprojects { repositories { google() // 同样放在最前面 jcenter() mavenCentral() } }
注:不需要重复添加maven { url "https://maven.google.com" },因为google()已经包含了这个地址
2. 处理间接依赖的viewmodel问题
你没有直接声明viewmodel依赖,但appcompat-v7:28.0.0-alpha1会间接依赖android.arch.lifecycle:viewmodel:1.1.0。如果Gradle找不到它,可以尝试直接显式声明这个依赖,强制指定版本,让Gradle明确去拉取:
在app模块的build.gradle的dependencies里添加:
implementation 'android.arch.lifecycle:viewmodel:1.1.0' implementation 'android.arch.lifecycle:livedata-core:1.1.0'
3. 清除Gradle缓存(关键步骤)
很多时候,Gradle缓存里的损坏文件会导致依赖拉取失败,即使你配置正确也没用。按以下步骤操作:
- 点击Android Studio顶部菜单栏的
File->Invalidate Caches / Restart - 在弹出的窗口中选择
Invalidate and Restart,等待AS重启并自动重新同步
4. 检查网络和代理设置
你能直接打开链接下载aar,但Gradle不行,很大概率是代理配置不一致:
- 检查AS的代理设置:
File->Settings->Appearance & Behavior->System Settings->HTTP Proxy,确保代理和你浏览器用的一致,或者直接选择No proxy(如果你不需要代理) - 检查
gradle.properties文件(项目根目录下),看看是否有http.proxyHost、http.proxyPort这类配置,如果有但你不需要代理,就把这些配置删掉
5. 尝试国内镜像仓库(如果网络不稳定)
如果是访问Google仓库太慢或者不稳定,可以替换成国内的镜像仓库,比如阿里云的maven镜像,修改项目级build.gradle的repositories:
buildscript { ext.kotlin_version = '1.2.41' repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url 'https://maven.aliyun.com/repository/public' } } // ... 依赖部分不变 } allprojects { repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } maven { url 'https://maven.aliyun.com/repository/public' } } }
最后再试一次同步
完成上面的步骤后,点击AS右上角的Sync Project with Gradle Files按钮,等待同步完成。如果还是有问题,可以尝试删除项目根目录下的.gradle文件夹,然后重新同步。
内容的提问来源于stack exchange,提问作者user3770803

