前序
事情的发生经过是这样的,我向公司申请一台笔记本电脑,这个电脑是我接手上个Android开发的电脑,但是中间这个笔记本被公司的后台开发用过一段时间。最近上个Android开发的项目因为有新功能接入,项目赶要加班,我的是台式电脑,带回家不方便,就申请了这台电脑。
正题
新功能很快加班赶出来了,调试运行都没问题,上线的前一天,我要打正式包交付apk了,却发现怎么都打包失败,结果都是这个Out Of Memroy,我就检查了下电脑的内容8g,感觉勉强也算够用啊,因为我公司台式电脑没加内存条前也是8G,并没有出这个问题啊,是我用的最新Android studio的事儿?AS吃内存的事儿,大家都很清楚,没想到这个新版本的这么吃内存?然后我就一通配置gradle
dexOptions {
javaMaxHeapSize "4g"
}
结果卒!!不好用!!
还是Out of Memory
配置gradle.properties
org.gradle.jvmargs=-Xmx1536m
依旧是Out Of Memory
配置studio64.exe.vmoptions
-Xms256m
-Xmx1280m(放大这个,具体要看电脑内存,一般是电脑内存折半)
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-Djna.nosys=true
-Djna.boot.library.path=
-da
结果还是Out Of Memory
最后我一换了低版本的Android studio 发现还是报那个错,但是这回有详细的报错信息
大概就是 JAVA_TOOL_OPTIONS: -Xmx512m ,我一看这个我顿时明白了,明明我设置的是java内存最大是2g,结果完全没管事儿;然后打开cmd 输入java -version 发现也输出的是 JAVA_TOOL_OPTIONS: -Xmx512m。我查看我的环境变量,里边赫然配置了 JAVA_TOOL_OPTIONS: -Xmx512m ,我果断删掉这个环境变量,重新打包,2分钟多,打包完事儿,这个坑爹的问题终于解决,耽误了两天时间。特此记录下,希望有帮到倒霉遇到这个古怪问题的朋友。