gradle 入坑指南(基本原理介绍+错误集锦)

2019-03-01 17:43:13 浏览数 (1)

这次我真的是算是掉坑了,必须写一波来抒发自己对gradle的敬畏之心。 本文主要讲解在Android Studio中gradle配置的坑。

关于Android Studio 中的 Gradle

描述:Android Studio默认集成Gradle,主要有两种途径:自动下载和本地下载选择。

1.用gradle wrapper 中的版本配置,去下载安装gradle 。

详情步骤:

  • 查看gradle-weapper properties 文件里指定gradle下载地址。 例子指定了下载gradle4.1版本: distributionUrl=https://services.gradle.org/distributions/gradle-4.1-all.zip 如下图:

  • 查看gradle插件和gradle版本关系是否对应,不对应会报错。 如上图:我们下载的是4.1版的gradle,我们可以用3.0.0 。对应关系表传送门(需要访问外国网站)

关系对照表(更新至2019.1.30日)

2.本地下载,然后Android Studio选择对应版本。

步骤详情:

preference -> Gradle->Use local gradle distribution

Gradle home 填写Gradle本地下载地址。

同样需要指定gradle插件版本与本地选择版本对应。

Gradle相关配置

这几天采坑,搜帖子发现很多博客都是为了解决问题而解决问题,有些选项不了解什么意思就敢点(我也点了)。不了解原理和报错原因,就开始动手会把问题复杂化。

下面是gradle一些配置说明:

1.Offline work工作模式

配置描述:

离线模式工作,看这个名字已经明白了一二。 离线工作模式会从缓存中获取依赖库,而不去网络下载。如果缓存中没有依赖,打开这个模式一定会失败。

The --offline command line switch tells Gradle to always use dependency modules from the cache, regardless if they are due to be checked again. When running with offline, Gradle will never attempt to access the network to perform dependency resolution. If required modules are not present in the dependency cache, build execution will fail.

2.Enable embedded Maven repository

配置描述:

允许加入maven仓库,我是Mac版Android Studio默认不是勾选的。

3.设置HTTP代理

设置完后置gradle.properties文件会出现设置内容,如果不用记得清除。(下面截图不是上个图配置地址,只是想说下位置

错误集锦(终于可以吐槽了)

错误1:Unknown host ‘d29vzk4ow07wi7.cloudfront.net’. You may need to adjust the proxy settings in Gradle.

详情描述:

分析和解决:

这里提示你打开离线模式和去设置HTTP代理。

我刚建的项目,让我打开离线模式去工作,这不是扯淡吗?缓存现在什么都没有。(如果你打开离线模式,然后重新同步,它就会提醒你立马关上。)

然后是设置HTTP代理(步骤介绍上文),设置过之后也可以访问外国网站。你发现并没有卵用。

原因: Mac版Android Studio默认不是勾选Enable embedded Maven repository,然后gradle无法下载在maven仓库的依赖。

解决:https://blog.csdn.net/#Maven

错误2:gradle下载不了第三方库、 Could not download 、 Connet refused

分析和解决:

原因:被墙了,gradle无法下载依赖库

解决:要么访问外国网站,要么采用国内镜像。推荐采用阿里镜像很快。

代码语言:javascript复制
allprojects {  
    repositories {  
         maven {  
             name "aliyunmaven"  
             url "http://maven.aliyun.com/nexus/content/groups/public/"  
         }  
    }  
}  

错误3:org.gradle.api.resources.ResourceException: Could not get resource

解决:https://blog.csdn.net/#Maven

0 人点赞