如何避免复制Android Studio项目后Gradle重复下载依赖?
复制Android Studio项目后重复下载依赖?原因与解决办法
这是正常行为吗?
当然不是。Gradle默认会把所有依赖缓存到全局目录(Mac/Linux是~/.gradle/caches,Windows是C:\Users\<你的用户名>\.gradle\caches),只要依赖的版本、仓库配置没改,不管项目移到哪个文件夹,都应该直接用已缓存的文件,没必要重新下载。出现这种情况,基本是复制项目时带了不该带的本地缓存文件,或者项目配置有问题。
怎么避免复制/重命名项目时重复下载?
复制前清理项目本地缓存
复制项目时,别把Gradle生成的本地缓存和构建产物一起拷走——这些文件和原项目路径绑定,新项目识别不了,会触发重新下载:- 先在原项目里执行命令清理:Mac/Linux用
./gradlew clean,Windows用gradlew.bat clean - 删除项目根目录的
.gradle文件夹、根目录的build文件夹,还有各个模块(比如app)里的build文件夹 - 只保留核心文件:
app模块、gradle文件夹、build.gradle(根目录)、settings.gradle、gradle.properties、gradlew/gradlew.bat
- 先在原项目里执行命令清理:Mac/Linux用
检查Gradle缓存配置
打开项目的gradle.properties,确保没把缓存强制设在项目本地:- 如果有
gradle.user.home=./.gradle这类配置,直接删掉——这会让Gradle把缓存存在项目里,换文件夹就失效了 - 保持默认的全局缓存路径就行,不用额外配置
- 如果有
正确导入新项目
复制到新文件夹后,别直接双击build.gradle打开。打开Android Studio后选File > Open,选中新项目的根目录,让AS重新关联Gradle,这样会自动调用全局缓存。已复制项目的补救方法
如果已经复制完且正在重新下载,直接按下面操作:- 关掉Android Studio,删除新项目里的
.gradle文件夹和所有build文件夹 - 重新打开项目,Gradle会自动读取全局缓存,不用再下载一遍
- 关掉Android Studio,删除新项目里的
内容的提问来源于stack exchange,提问作者VSB
相关产品推荐
相关产品推荐

