Android Studio 3.0.1依赖解析失败,如何离线运行新项目?
解决Android Studio 3.0.1离线模式下新项目依赖解析失败的问题
我来帮你搞定这个离线模式的依赖报错问题——本质原因很简单:你新项目里用到的com.android.support:appcompat-v7:26.1.0、constraint-layout:1.1.0-beta3这些依赖,之前没在有网环境下下载缓存过,离线模式下Android Studio没法访问远程仓库拉取,自然就解析失败了。下面是几个实用的解决方案:
1. 提前在有网环境下缓存所需依赖(最推荐)
这是一劳永逸的办法,先在能联网的时候把需要的依赖都下载到本地:
- 打开Android Studio,进入
File > Settings > Build, Execution, Deployment > Gradle(Mac用户是Android Studio > Preferences > ...),取消勾选Offline work选项,点击OK保存。 - 回到项目,点击工具栏上的「Sync Project with Gradle Files」按钮(就是那个带箭头的大象图标),让AS自动下载项目里所有声明的依赖。
- 等同步完成后,再回到Gradle设置界面,重新勾选Offline work,确认保存。这样下次断网时,AS就会直接用本地缓存的依赖构建项目了。
2. 替换依赖为本地已缓存的版本(应急方案)
如果没法临时联网,你可以把项目里的依赖版本换成已经存在于本地缓存的:
- 先找到本地Gradle缓存目录:
- Windows:
C:\Users\<你的用户名>\.gradle\caches\modules-2\files-2.1\com.android.support - Mac/Linux:
~/.gradle/caches/modules-2/files-2.1/com.android.support
- Windows:
- 打开这个目录,看看里面有哪些已经下载好的支持库版本(比如
25.4.0、26.0.0之类的)。 - 打开项目的
app/build.gradle文件,把报错的依赖版本替换成你已有的,比如:// 把原来的26.1.0换成你缓存里有的版本 implementation 'com.android.support:appcompat-v7:25.4.0' implementation 'com.android.support:design:25.4.0' // constraint-layout同理,换成本地已缓存的版本,比如1.0.2 implementation 'com.android.support.constraint:constraint-layout:1.0.2' - 同步项目,离线模式下就能找到对应的缓存依赖了。
3. 检查Gradle离线相关的细节
还要确认几个容易忽略的点:
- 如果你用命令行构建项目,别加
--offline参数,不过AS里的图形化设置优先级更高。 - 检查项目的
gradle/wrapper/gradle-wrapper.properties文件,确保distributionUrl指向的Gradle版本是你本地已有的。比如如果里面写的是distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip,要确认这个版本已经在~/.gradle/wrapper/dists目录下有缓存,不然离线时会提示下载Gradle本身。
内容的提问来源于stack exchange,提问作者Abdul Rahmat




