gradle相关问题总结

gradle和gradle plugin配置

android studio在编译的过程中,经常因为gradle和gradle plugin的下载导致编译时间慢或者一直卡在那里,很多都被屏蔽了,无法访问。今天总结一下常见的几个问题以及解决方法。

首先,要知道gradle和gradle plugin是两个东西,很多人经常把这两个东西弄混。

Gradle

image.png

图1

如果选择“Use default gradle wrapper(recommended)”,gradle配置的是Service directory path。

image.png

图2
上图的文件中有一行配置,例如:distributionUrl=http****:****//10.251.47.180/distributions/gradle-2.14.1-all.zip

如果Service directory path中没有该版本的gradle,就会从上面的网址中下载,这时,如果网络有问题,就会出问题。要是出现这种无法下载的情况,修改的方法就有很多了:

  1. 改善网络环境,使能够访问上面的地址下载gradle

  2. 将distributionUrl中的gradle版本改成Service directory path中有的版本,就不会从网上下载了。

  3. 将distributionUrl的版本先下载下来,然后离线配置到Service directory path中去。

如果选择“Use local gradle distribution”,gradle配置的是Gradle home。

Gradle plugin

Gradle和Gradle plugin有一个对应关系,如果版本差距太大会报错。Gradle plugin的配置在build.gradle中。如下图

image.png

图3

可以把这个插件就看成一个依赖库,缓存的位置等都是一样的。如果这里的版本本地没有,而网络环境又有问题,就会报找不到依赖库同样的问题。

Offline mode是什么?

见图1,offline mode如果不勾选,as会自动下载依赖。如果勾选,就会使用本地的包。本地包的地址是

C:\Users\l00405365.gradle\caches\modules-2\files-2.1

在线下载的包去哪里了?

C:\Users\l00405365.gradle\caches\modules-2\files-2.1

Gradle使用Maven本地缓存库

如果想使用Maven本地缓存,需要定义:build.gradle 文件下定义

build.gradle

repositories {

mavenLocal()

}

Gradle使用与Maven相同的策略去定位本地Maven缓存的位置。如果在settings.xml中定义了本地Maven仓库的地址,则使用该地址。

在USER_HOME/.m2下的settings.xml文件中的配置会覆盖存放在M2_HOME/conf下的settings.xml文件中的配置。

如果没有settings.xml配置文件,Gradle会使用默认的USER_HOME/.m2/repository地址。

gradle本地配置时找不到包的解决方法

因为我们是在离线模式下进行gradle的,引用的是C:/Users/xxxx/.gradle文件。所以,在提示不能下载此jar包时,往往是因为gradle\caches\modules-2\metadata-2.16\descriptors目录下,没有对应的jar包。

举个例子:比如说junit:4.12.jar。一般在gradle\caches\modules-2\metadata-2.16\descriptors目录下会存在一个junit目录,但是你点击进去之后发现,其实4.12目录下没有对应的jar包。

解决方法:只需将下载好jar包放入gradle\caches\modules-2\metadata-2.16\descriptors目录下对应的目录即可。

你可能感兴趣的:(gradle相关问题总结)