首页 > 代码库 > 解决:编译CM14.1 提示Jack “Out of memory error”错误
解决:编译CM14.1 提示Jack “Out of memory error”错误
Android 7.1编译到33%时出现JDK内存溢出的错误:
Out of memory error (version 1.2-rc4 ‘Carnac‘ (298900 f95d7bdecfceb327f9d201a1348397ed8a843843 by android-jack-team@google.com)).GC overhead limit exceeded.Try increasing heap size with java option ‘-Xmx<size>‘.Warning: This may have produced partial or corrupted output.
错误日志里边列出了问题并且已经给出了解决方案 - 增加Java虚拟机的-Xmx
大小,即设置一个较大的堆内存上限。
所以,解决办法是:
1、修改Jack的配置文件prebuilts/sdk/tools/jack-admin
这是一个管理Jack的shell脚本,找到start-server
函数,直接修改其启动参数,由原来的
JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -cp $LAUNCHER_JAR $LAUNCHER_NAME"
更改为
JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx4096m -cp $LAUNCHER_JAR $LAUNCHER_NAME"
此时Jack服务器仍然在后台执行,所以我们需要将其停止,然后重启启动(make
会自动启动Jack服务器)才能使得修改后的参数生效。
我们执行下面的命令此时Jack服务器仍然在后台执行,所以我们需要将其停止,然后重启启动(make
会自动启动Jack服务器)才能使得修改后的参数生效。
我们执行下面的命令:
#先停止服务./prebuilts/sdk/tools/jack-admin stop-server
#重新开始服务./prebuilts/sdk/tools/jack-admin start-server
详细的错误日志里边列出了问题并且已经给出了解决方案 - 增加Java虚拟机的-Xmx
大小,即设置一个较大的堆内存上限。
解决:编译CM14.1 提示Jack “Out of memory error”错误
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。