Android Studio中如何让Gradle完全离线工作?
让Gradle完全离线工作的可行方案
1. 完整缓存所有必要资源(需在有稳定网络的环境下操作)
先确保本地缓存了项目所需的所有依赖、插件以及Gradle发行版:
- 执行命令:
gradle build --refresh-dependencies,这个命令会强制刷新并下载项目build.gradle中声明的所有依赖、插件,以及Gradle本身(如果本地没有对应版本)。执行前要确认项目的依赖配置完整,没有遗漏。 - 若项目使用Gradle Wrapper,还需确保Wrapper对应的Gradle版本已缓存,可通过执行
gradle wrapper --gradle-version <你的Gradle版本>来提前下载对应版本到本地。
2. 开启离线模式
命令行方式
执行Gradle任务时添加--offline参数,例如:
gradle build --offline gradle assembleDebug --offline
添加该参数后,Gradle会完全依赖本地缓存,不再尝试联网请求。
IDE方式(以Android Studio/IntelliJ为例)
- 打开Settings(Windows/Linux:File → Settings;macOS:IntelliJ IDEA/Android Studio → Settings)
- 导航到Build, Execution, Deployment → Build Tools → Gradle
- 勾选Offline work选项,点击Apply保存。此后IDE内的所有Gradle操作都会默认使用离线模式。
3. 迁移缓存到无网络环境(如果需要在另一台机器使用)
Gradle的缓存分为两部分,都需要完整复制:
- 依赖缓存路径:
- Windows:
C:\Users\<用户名>\.gradle\caches - macOS/Linux:
~/.gradle/caches
- Windows:
- Gradle发行版缓存路径(Wrapper使用):
~/.gradle/wrapper/dists
将这两个目录完整复制到目标机器的对应路径下,确保文件权限正常。
4. 排查常见问题
- 动态版本号导致的联网请求:避免使用
+这类动态版本(如implementation 'com.example:lib:+'),改为固定版本号(如implementation 'com.example:lib:1.2.3'),动态版本会强制Gradle联网检查最新版本。 - 缓存不完整:在有网环境下执行
gradle dependencies --offline,如果有缺失的依赖,会明确提示未缓存的资源,重新执行gradle build --refresh-dependencies即可补全。 - 私有仓库依赖:如果项目依赖私有仓库的资源,需在有网环境下先将这些资源下载到本地缓存,再迁移到离线环境。
内容的提问来源于stack exchange,提问作者Safi Ullah Mirzai
相关产品推荐
相关产品推荐

