You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Android Studio 3.0.1依赖解析失败,如何离线运行新项目?

解决Android Studio 3.0.1离线模式下新项目依赖解析失败的问题

我来帮你搞定这个离线模式的依赖报错问题——本质原因很简单:你新项目里用到的com.android.support:appcompat-v7:26.1.0constraint-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
  • 打开这个目录,看看里面有哪些已经下载好的支持库版本(比如25.4.026.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

火山引擎 最新活动