在将gradle版本更新到3.3之后(我不确定这是否会有任何影响),但有时,我的构建需要大约30分钟。当构建完成或取消时,我在项目的主包中看到一个名为"java_pid1160.hprof“的文件。文件大小约为2-5~ GB。当这种情况发生时,我的CPU疯狂地工作,我看到风扇活动增加。我知道hprof文件是java内存转储文件,但是因为Android Studio有内存监视器,并且还将内存转储到hprof文件,所以真的很难找到任何有用的东西。还有谁有这个问题吗?
发布于 2017-06-29 20:26:26
我会说你的构建耗尽了内存,Gradle默认设置了-XX:+HeapDumpOnOutOfMemoryError,所以在内存耗尽的情况下你会得到一个堆转储。我很奇怪你为什么不把OOM也显示出来。
您应该尝试增加授予构建的最大内存。加上例如。
org.gradle.jvmargs = -Xmx2g -XX:+HeapDumpOnOutOfMemoryError添加到您的项目gradle.properties文件(如果不存在,则创建它,它必须在根项目目录中),以增加最大内存。
当然,也可能是您的构建脚本中存在内存泄漏,因此内存会在运行过程中累积。如果您使用gradlew --stop终止gradle守护进程,并且此行为仅在几次构建后才重新出现,那么您可能存在内存泄漏,您应该调查并修复此问题。如果在停止守护进程后立即失败,您的构建可能只需要更多内存。如果问题是内存泄漏,增加最大内存只会暂时有所帮助,并且在构建比以前更多的构建之后,您将获得相同的行为。
https://stackoverflow.com/questions/44824442
复制相似问题