AndroidStudio Gradle 编译项目时间过长问题

最近一个朋友新写了一个项目,随着项目的扩大,gradle的时间越来越长,有一次竟然跑了四十分钟,而且常常会出现!这让我很是惊讶,下面为QQ给我发的图片。

《AndroidStudio Gradle 编译项目时间过长问题》 运行50分钟2333

之后没多想就告诉他把settings-gradle-offline work设置了对勾

《AndroidStudio Gradle 编译项目时间过长问题》

之后将app级别的build.gradle添加一下javaMaxHeapSize “4g”

《AndroidStudio Gradle 编译项目时间过长问题》

本以为可以帮他解决问题,结果告诉我还是慢,之后他告诉我有时候跑项目的时候会出现GC overhead limit exceeded 这个错误,但是是概率性的。

因为小弟不才对gc不太了解,我就查了一下gc垃圾回收机制

找到了一篇博客https://blog.csdn.net/jiafu1115/article/details/7024323感觉讲的很清晰,推荐看一下。

之后了解查找此错误为JDK6新增的错误类型。

原因:当GC为释放很小空间占用大量时间时会抛出此异常

即(Sun 官方对此的定义:超过98%的时间用来做GC并且回收了不到2%的堆内存时会抛出此异常)。

一般是因为堆太小,导致异常的原因:没有足够的内存。 

解决方案:在gradle.properties里添加如下代码

org.gradle.daemon=true

org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=4096m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

org.gradle.parallel=true

org.gradle.configureondemand=true

《AndroidStudio Gradle 编译项目时间过长问题》

org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=4096m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

上面这一句根据自己电脑配置自行设置

其他三句为加快gradle的编译速度

他告诉我编译速度最慢也就一分多钟了,至此问题已经解决!

最后我向他推荐了Freeline ,它可以实现Android的秒级编译,蚂蚁金服旗下开发,谁用谁知道!

开源地址:https://github.com/alibaba/freeline 

原理:https://yq.aliyun.com/articles/59122?spm=5176.8091938.0.0.1Bw3mU

下一篇准备记录一下freeline的安装以及基本用法,和自己曾经遇到的一些问题。

从今往后每周会抽出一些时间,记录一下在安卓开发中遇到的一些问题和解决方案,好记性不如烂笔头,自己加油!

    原文作者:全能超人
    原文地址: https://www.jianshu.com/p/037dc4e7f51d
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞