解决:编译CM14.1 提示Jack “Out of memory error”错误

Posted dinphy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决:编译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-[email protected])).
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”错误的主要内容,如果未能解决你的问题,请参考以下文章

编译CM14.1(sudmod71.1)过程记录

Android:JACK编译错误汇总及解决

JAVA升级导致Android编译时Jack server出错

CM13 for i9100编译

Ubuntu16.04编译Android6.0/cm13.0教程及相关错误解决办法

解决Linux系统root用户登陆失败,提示“鉴定故障”