AS运用gradle构建app项目,其中必然会缓存各种文件,如编译的各类class,依赖的各种jar包,那这个缓存文件放在哪里呢?
不调整缓存目录也没多大关系,前提是你的C盘容量够大,因为这个缓存文件是随着时间的推移而逐渐增大的。
强迫症的我经常手贱去点了update sdk,经常就是2、3G,结果下载到一半的时候告诉我磁盘空间不足,这简直让我无法忍受,一咬牙决定把缓存文件移到其它磁盘,况且下载缓存目录也无法更改。 更改gradle的缓存目录在每个工程中都有这么一个文件夹目录gradle,点开其中的gradle-wrapper.properties
这个就是gradle缓存的目录,配置与Java一样,新建一个环境变量,名字为GRADLE_USER_HOME,值就为其它盘中gradle要放置的文件目录,它会在这个目录下自动生成.gradle文件夹(如不存在)。 当完成了gradle缓存目录的设置后,我将C盘中的.gradle文件直接复制到了新的缓存目录中,然后引发了后续各种奇葩问题. 项目无法编译,build error当更改缓存目录后,编译项目时AS报了如下的错误 Error:Unable to load class
从英文的意思上看,是说Gradle的依赖库或者守护进程被损坏了,我clean然后rebuild过项目,依然报这个错误,没办法只能上stackoverflow,解决方法就是简单粗暴的删除.gradle这个文件夹,然后让AS重新构建项目,重新下载依赖库。 之前也陆陆续续报过构建时的错误-init scripts-remapped error,也是asLocalRepoxxx这样的class发生错误,但是这个init的错误在重试三次后就会消失,实在让人烦躁。 这一次是项目无法正常运行了,使出杀手锏-直接剪切.gradle备份起来,然后重启AS. Refreshing….界面卡住的尴尬移除.gradle文件夹后,然后重启AS开始重建之路,看着进度条好像有点慢,将之放入background,过了10分钟再看,依然还是refreshing,再过了10分钟,依然还是refreshing…..
而这个网址下载gradle到底有多慢呢,访问网站下载速度大概需要3个小时才能下载完这个87.3M的文件。 我又Ping了一下,发送丢包率竟然为50% 所以说在这种龟速上,怪不得一直卡在这个界面上,最基础的构建工具都要下个老半天,真是心累。 幸好我机智了备份了之前配置好的gradle3.4-all的zip,将之复制到下图目录中,项目可以正常的往下构建,不会一直卡过refreshing这个界面中。 题外话:为什么我选择的是3.4版本的gradle呢,这是因为我的gradle插件是2.3.3版本的(com.android.tools.build:gradle:2.3.3),这个版本只能支持3.3+版本的gradle,各个插件对应的gradle版本号如下表所示。
故打开别人项目之前一定要看下顶级 |
|