问题描述
最近编译老项目。也没多老。去年才编译过的项目。
但是每次编译之后,代码没有错误,就是提示
GC overhead limit exceeded
有些时候也会给你提示下面的内容
而且还有一种情况,就是你直接编译Debug版本的时候,不会提示错误,但是你编译release版本。打包发布的时候。
才会提示上面的错误。
产生的原因:
主要原因在于Android Stuido 在3.5版本之后,默认开启了 R8 编译器。
在我们代码编译过程之中会编译压缩代码,然后就会较大占用我们的系统资源。造成你的jvm虚拟机GC,然后编译失败。
而如果是老项目,一直维护的话,可能不注意Android Stuido 升级。最终你会出现该问题。
解决
1.升级你的gradle版本
//根据你的android Stuido 版本支持的gradle 版本来确定。 尽量保持最新。
classpath 'com.android.tools.build:gradle:4.0.2'
2.在Project 目录下,创建gradle.properties 文件。
如果你没有gradle.properties 文件的话,需要你主动添加
在gradle.properties 文件之中添加下面的配置:
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.configureondemand=true
//关键是这个, 设置jvm 的内存值
org.gradle.jvmargs=-Xmx4096m